一、简介
Hutool - Extra 作为 Hutool 工具包的扩展模块,对浩繁第三方库和功能进行了封装,极大地丰富了 Hutool 的功能体系。它涵盖了模板引擎、邮件发送、Servlet 处理、二维码天生、Emoji 处理、FTP 操作以及分词等多个方面,为开辟者在不同场景下提供了便捷的解决方案,让开辟者无需深入相识各个第三方库的复杂细节,只需调用简单的 API 即可实现相应功能。
二、详细功能及使用示例
1. 模板引擎封装
模板引擎常用于天生动态内容,如 HTML 页面、邮件模板等。Hutool - Extra 对常见的模板引擎进行了封装,以 Freemarker 为例:
引入依赖
如果使用 Maven 项目,在 pom.xml 中添加 Freemarker 和 Hutool 的依赖:
- <dependency>
- <groupId>cn.hutool</groupId>
- <artifactId>hutool-all</artifactId>
- <version>5.8.16</version>
- </dependency>
- <dependency>
- <groupId>org.freemarker</groupId>
- <artifactId>freemarker</artifactId>
- <version>2.3.31</version>
- </dependency>
复制代码 代码示例
- import cn.hutool.extra.template.Engine;
- import cn.hutool.extra.template.Template;
- import cn.hutool.extra.template.TemplateConfig;
- import cn.hutool.extra.template.TemplateUtil;
- import java.util.HashMap;
- import java.util.Map;
- public class FreemarkerExample {
- public static void main(String[] args) {
- // 创建模板配置
- TemplateConfig config = new TemplateConfig();
- config.setResourceMode(TemplateConfig.ResourceMode.CLASSPATH);
- // 获取模板引擎
- Engine engine = TemplateUtil.createEngine(config);
- // 获取模板
- Template template = engine.getTemplate("test.ftl");
- // 准备数据
- Map<String, Object> data = new HashMap<>();
- data.put("name", "John");
- // 渲染模板
- String result = template.render(data);
- System.out.println(result);
- }
- }
复制代码 在上述代码中,首先创建了模板配置对象,指定资源模式为从类路径加载模板。然后使用 TemplateUtil.createEngine 方法获取模板引擎,通过引擎获取指定名称的模板。预备好数据后,调用 render 方法将数据添补到模板中,得到终极的渲染结果。
2. 邮件发送
Hutool - Extra 封装了 JavaMail 实现邮件发送功能,简化了邮件发送的流程。
引入依赖
如果使用 Maven 项目,在 pom.xml 中添加 JavaMail 和 Hutool 的依赖:
- <dependency>
- <groupId>cn.hutool</groupId>
- <artifactId>hutool-all</artifactId>
- <version>5.8.16</version>
- </dependency>
- <dependency>
- <groupId>com.sun.mail</groupId>
- <artifactId>javax.mail</artifactId>
- <version>1.6.2</version>
- </dependency>
复制代码 代码示例
- import cn.hutool.extra.mail.MailAccount;
- import cn.hutool.extra.mail.MailUtil;
- public class MailExample {
- public static void main(String[] args) {
- // 配置邮件账户
- MailAccount account = new MailAccount();
- account.setHost("smtp.example.com");
- account.setPort(465);
- account.setAuth(true);
- account.setUser("your_email@example.com");
- account.setPass("your_password");
- account.setSslEnable(true);
- // 发送邮件
- String result = MailUtil.send(account, "recipient@example.com", "测试邮件", "这是一封测试邮件。", false);
- System.out.println(result);
- }
- }
复制代码 在这个示例中,首先创建了邮件账户配置对象,设置了邮件服务器的主机名、端口、认证信息等。然后使用 MailUtil.send 方法发送邮件,指定收件人、邮件主题、邮件内容等参数。
3. Servlet 处理
Hutool - Extra 提供了一些工具类来简化 Servlet 开辟中的常见操作,如获取请求参数、处理响应等。
代码示例
- import cn.hutool.extra.servlet.ServletUtil;
- import javax.servlet.ServletException;
- import javax.servlet.annotation.WebServlet;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- @WebServlet("/test")
- public class TestServlet extends HttpServlet {
- @Override
- protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- // 获取请求参数
- String param = ServletUtil.getParam(req, "param");
- // 设置响应内容类型
- resp.setContentType("text/html;charset=UTF-8");
- // 输出响应信息
- resp.getWriter().println("接收到的参数:" + param);
- }
- }
复制代码 在上述 Servlet 中,使用 ServletUtil.getParam 方法获取请求参数,然后设置响应内容类型并输出响应信息。
4. 二维码天生
Hutool - Extra 封装了 ZXing 库来天生二维码。
引入依赖
如果使用 Maven 项目,在 pom.xml 中添加 ZXing 和 Hutool 的依赖:
- <dependency>
- <groupId>cn.hutool</groupId>
- <artifactId>hutool-all</artifactId>
- <version>5.8.16</version>
- </dependency>
- <dependency>
- <groupId>com.google.zxing</groupId>
- <artifactId>core</artifactId>
- <version>3.4.1</version>
- </dependency>
- <dependency>
- <groupId>com.google.zxing</groupId>
- <artifactId>javase</artifactId>
- <version>3.4.1</version>
- </dependency>
复制代码 代码示例
- import cn.hutool.extra.qrcode.QrCodeUtil;
- import cn.hutool.extra.qrcode.QrConfig;
- import java.awt.image.BufferedImage;
- import java.io.File;
- import javax.imageio.ImageIO;
- public class QrCodeExample {
- public static void main(String[] args) throws Exception {
- // 二维码配置
- QrConfig config = new QrConfig(300, 300);
- // 生成二维码图片
- BufferedImage image = QrCodeUtil.generate("https://www.example.com", config);
- // 保存二维码图片
- File file = new File("qrcode.png");
- ImageIO.write(image, "png", file);
- }
- }
复制代码 在这个示例中,首先创建了二维码配置对象,指定了二维码的尺寸。然后使用 QrCodeUtil.generate 方法天生二维码的 BufferedImage 对象,末了将其生存为 PNG 图片。
5. Emoji 处理
Hutool - Extra 提供了 Emoji 相干的工具类,用于处理 Emoji 表情的编码、解码等操作。
代码示例
[code]import cn.hutool.extra.emoji.EmojiUtil;
public class EmojiExample {
public static void main(String[] args) {
String emojiStr = " |