springboot项目中常用的工具类和api

在Spring Boot项目中,开发者通常会依赖一些工具类API来简化开发、提高效率。以下是一些常用的工具类及其典型应用场景,涵盖 Spring 原生工具第三方库(如Hutool、Guava)Java 自带工具


1. Spring Framework 自带工具类

(1) StringUtils

  • 包名: org.springframework.util.StringUtils
  • 功能: 字符串判空、分割、拼接等。
  • 常用方法:
    boolean isEmpty(Object str);          // 判断字符串是否为空(比Java原生更安全)
    String[] tokenizeToStringArray(...);  // 字符串分割
    String collectionToDelimitedString(...); // 集合转字符串(如用逗号连接)
    

(2) CollectionUtils

  • 包名: org.springframework.util.CollectionUtils
  • 功能: 集合操作。
    boolean isEmpty(Collection<?> coll);  // 判断集合是否为空
    boolean containsAny(Collection<?> source, Collection<?> candidates); // 检查是否有交集
    

(3) FileCopyUtils

  • 包名: org.springframework.util.FileCopyUtils
  • 功能: 文件复制、流操作。
    byte[] copyToByteArray(File file);    // 文件转字节数组
    void copy(InputStream in, OutputStream out); // 流复制
    

(4) ResourceUtils

  • 包名: org.springframework.util.ResourceUtils
  • 功能: 资源文件读取。
    File getFile(String location);        // 获取资源文件(如classpath:config.yml)
    

2. Spring Boot 特有工具

(1) ObjectMapper (JSON处理)

  • 包名: com.fasterxml.jackson.databind.ObjectMapper
  • 场景: JSON序列化/反序列化(Spring Boot默认集成Jackson)。
    String json = objectMapper.writeValueAsString(obj); // 对象转JSON
    User user = objectMapper.readValue(json, User.class); // JSON转对象
    

(2) RestTemplate / WebClient (HTTP请求)

  • 包名: org.springframework.web.client.RestTemplate(同步)
    org.springframework.web.reactive.function.client.WebClient(异步)
  • 示例:
    String result = restTemplate.getForObject("https://api.example.com", String.class);
    

(3) JdbcTemplate (数据库操作)

  • 包名: org.springframework.jdbc.core.JdbcTemplate
  • 场景: 简化JDBC操作。
    List<User> users = jdbcTemplate.query("SELECT * FROM user", new BeanPropertyRowMapper<>(User.class));
    

3. 第三方工具库

(1) Apache Commons

  • StringUtils:
    boolean isBlank = org.apache.commons.lang3.StringUtils.isBlank(str); // 判断空白字符串
    
  • FileUtils:
    FileUtils.copyFile(srcFile, destFile); // 文件复制
    

(2) Google Guava

  • 集合工具:
    List<String> list = Lists.newArrayList("a", "b"); // 快速创建集合
    
  • 字符串处理:
    String joined = Joiner.on(",").join(list); // 集合拼接为字符串
    

(3) Hutool(国产神器)

  • StrUtil:
    boolean isEmpty = StrUtil.isEmpty(str); // 字符串判空
    
  • DateUtil:
    String now = DateUtil.now(); // 当前时间(格式:yyyy-MM-dd HH:mm:ss)
    
  • IdUtil:
    String uuid = IdUtil.randomUUID(); // 生成UUID
    

4. Java 原生工具类

(1) Collections

  • 集合操作:
    Collections.sort(list);               // 排序
    Collections.reverse(list);            // 反转
    

(2) Arrays

  • 数组操作:
    List<String> list = Arrays.asList("a", "b"); // 数组转List
    

(3) Files & Paths (NIO)

  • 文件操作:
    byte[] bytes = Files.readAllBytes(Paths.get("file.txt")); // 读取文件
    

5. 其他高频工具

(1) ValidationUtils (参数校验)

  • 包名: org.springframework.validation.ValidationUtils
  • 示例:
    ValidationUtils.rejectIfEmpty(errors, "name", "field.required"); // 校验字段非空
    

(2) ReflectionUtils (反射工具)

  • 包名: org.springframework.util.ReflectionUtils
  • 场景: 动态调用方法、访问字段。
    ReflectionUtils.findMethod(User.class, "getName"); // 查找方法
    

(3) StopWatch (性能监控)

  • 包名: org.springframework.util.StopWatch
  • 示例:
    StopWatch watch = new StopWatch();
    watch.start("task1");
    // 执行代码...
    watch.stop();
    System.out.println(watch.prettyPrint()); // 打印耗时
    

总结:如何选择工具类?

场景推荐工具类
字符串操作StringUtils (Spring/Commons/Hutool)
集合处理CollectionUtils (Spring/Guava)
JSON转换ObjectMapper (Jackson)
文件读写FileUtils (Commons) / Files (NIO)
HTTP请求RestTemplate / WebClient
数据库操作JdbcTemplate
日期处理DateUtil (Hutool)
反射调用ReflectionUtils (Spring)

合理使用这些工具类可以减少重复代码,提升开发效率。如果是Spring Boot项目,优先使用Spring生态提供的工具类(如StringUtils),复杂场景再引入第三方库(如Hutool)。

如果在使用 WangEditor 编辑器时,设置了文字颜色、背景色、字体大小或字体类型等样式无效,可能是因为缺少相应的 CSS 样式。 解决方法如下: 1. 打开 WangEditor 的 CSS 文件,一般是 `wangeditor.min.css` 或 `wangeditor.css`。 2. 确认文件中是否包含了设置样式的 CSS 规则,例如: ```css /* 设置字体颜色 */ .wangEditor-txt-color1 { color: #ff0000; } /* 设置背景颜色 */ .wangEditor-bgcolor1 { background-color: #ffff00; } /* 设置字体大小 */ .wangEditor-font-size-16 { font-size: 16px; } /* 设置字体类型 */ .wangEditor-font-family-simkai { font-family: simkai; } ``` 3. 如果 CSS 文件中没有包含这些 CSS 规则,可以手动添加,也可以从官方提供的样式库中复制相应的样式,例如: ```html <!-- 引入样式库 --> <link rel="stylesheet" type="text/css" href="https://unpkg.com/wangeditor/release/wangEditor.min.css"> <!-- 设置字体颜色 --> <div class="wangEditor-txt-color1">这是一段红色文字</div> <!-- 设置背景颜色 --> <div class="wangEditor-bgcolor1">这是一段黄色背景文字</div> <!-- 设置字体大小 --> <div class="wangEditor-font-size-16">这是一段16px字号的文字</div> <!-- 设置字体类型 --> <div class="wangEditor-font-family-simkai">这是一段宋体文字</div> ``` 4. 如果 CSS 文件中有这些 CSS 规则,但样式仍然无效,可能是因为样式被覆盖了。可以尝试使用 `!important` 关键字强制应用样式,例如: ```css .wangEditor-txt-color1 { color: #ff0000 !important; } ``` 5. 保存文件并重新加载 WangEditor 编辑器,就可以看到设置的样式了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

huingymm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值