importação maven
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.6.3</version>
</dependency>
Apresentação do hutool-all
Uma classe de ferramenta básica Java que encapsula métodos JDK como arquivo, fluxo, criptografia e descriptografia, transcodificação, regularização, encadeamento e XML para formar várias classes de ferramentas Util.
É muito poderoso e encapsula muitos componentes, portanto, antes de implementar qualquer ferramenta, você também pode acessar o site oficial dele para verificar: site oficial do hutool-all
Contém componentes:
- pacote de proxy dinâmico hutool-aop JDK, fornecendo suporte de aspecto sob não-IOC
- filtro hutool-bloomFilter Bloom, fornecendo filtro Bloom para alguns algoritmos Hash
- implementação de cache simples do hutool-cache
- Hutool-core core, incluindo operações Bean, datas, vários Utils, etc.
- módulo de tarefa de temporização hutool-cron, fornecendo tarefas de temporização como expressões Crontab
- módulo de criptografia e descriptografia hutool-crypto, fornecendo encapsulamento de algoritmo simétrico, assimétrico e resumido
- operação de dados encapsulados em JDBC hutool-db, baseada na ideia de ActiveRecord
- hutool-dfa Pesquisa de várias palavras-chave com base no modelo DFA
- módulo de extensão hutool-extra, para empacotamento de terceiros (mecanismo de modelo, e-mail, Servlet, código QR, Emoji, FTP, segmentação de palavras, etc.)
- Hutool-http Http encapsulamento de cliente baseado em HttpUrlConnection
- hutool-log A fachada de log implementada pelo reconhecimento automático de log
- pacote de execução de scripts hutool-script, como Javascript
- hutool-setting Arquivo de configuração de definição mais poderoso e pacote de propriedades
- hutool-system Encapsulamento de chamada de parâmetro do sistema (informações de JVM, etc.)
- implementação JSON do hutool-json
- implementação do código de verificação de imagem hutool-captcha
- pacote hutool-poi para Excel e Word em POI
- hutool-socket Encapsulamento de soquete de NIO e AIO baseados em Java
- implementação de encapsulamento hutool-jwt JSON Web Token (JWT)
Componentes comuns
import cn.hutool.core.annotation.AnnotationUtil;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import org.springframework.web.bind.annotation.RequestMapping;
import java.lang.annotation.Annotation;
import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
/**
* @author fei.chen
* @description: HutoolUtil: Hutool中的工具类很多,可以参考官网:https://www.hutool.cn/
* @date 2023/5/11下午 4:50
*/
public class HutoolUtil {
static class HutDateUtil {
public static void dateTest() {
//Date、long、Calendar之间的相互转换
//当前时间
Date date = DateUtil.date();
//Calendar转Date
date = DateUtil.date(Calendar.getInstance());
//时间戳转Date
date = DateUtil.date(System.currentTimeMillis());
//自动识别格式转换
String dateStr = "2017-03-01 12:22:22";
date = DateUtil.parse(dateStr);
//自定义格式化转换
date = DateUtil.parse(dateStr, "yyyy-MM-dd HH:mm:ss");
//格式化输出日期
String format = DateUtil.format(date, "yyyy-MM-dd HH:mm:ss");
//获得年的部分
int year = DateUtil.year(date);
//获得月份,从0开始计数
int month = DateUtil.month(date);
//获取某天的开始、结束时间
Date beginOfDay = DateUtil.beginOfDay(date);
Date endOfDay = DateUtil.endOfDay(date);
//计算偏移后的日期时间
Date newDate = DateUtil.offset(date, DateField.DAY_OF_MONTH, 2);
//计算日期时间之间的偏移量
long betweenDay = DateUtil.between(date, newDate, DateUnit.DAY);
}
}
static class HutStrUtil {
public static void strTest() {
//判断是否为空字符串
String str = "test";
StrUtil.isEmpty(str);
StrUtil.isNotEmpty(str);
//去除字符串的前后缀
StrUtil.removeSuffix("a.jpg", ".jpg");
StrUtil.removePrefix("a.jpg", "a.");
//格式化字符串
String template = "这只是个占位符:{}";
String str2 = StrUtil.format(template, "我是占位符");
System.out.println(str2);
}
}
static class HutNumberUtil{
public static void numberTest() {
double n1 = 1.234;
double n2 = 1.234;
double result;
//对float、double、BigDecimal做加减乘除操作
result = NumberUtil.add(n1, n2);
result = NumberUtil.sub(n1, n2);
result = NumberUtil.mul(n1, n2);
result = NumberUtil.div(n1, n2);
//保留两位小数
BigDecimal roundNum = NumberUtil.round(n1, 2);
String n3 = "1.234";
//判断是否为数字、整数、浮点数
NumberUtil.isNumber(n3);
NumberUtil.isInteger(n3);
NumberUtil.isDouble(n3);
//BeanUtil
// JavaBean的工具类,可用于Map与JavaBean对象的互相转换以及对象属性的拷贝。
TestClass testClass = new TestClass();
testClass.setId(1L);
testClass.setName("大大");
testClass.setShowStatus(0);
//Bean转Map
Map<String, Object> map = BeanUtil.beanToMap(testClass);
String template = "beanUtil bean to map:{}";
System.out.println(StrUtil.format(template, map));
//Map转Bean
TestClass mapTestClass = BeanUtil.mapToBean(map, TestClass.class, false);
System.out.println(StrUtil.format("beanUtil map to bean:{}", mapTestClass));
//Bean属性拷贝
TestClass copyTestClass = new TestClass();
BeanUtil.copyProperties(testClass, copyTestClass);
System.out.println(StrUtil.format("beanUtil copy properties:{}", copyTestClass));
}
}
static class HutMapUtil{
public static void mapTest() {
//将多个键值对加入到Map中
Map<Object, Object> map = MapUtil.of(new String[][]{
{
"key1", "value1"},
{
"key2", "value2"},
{
"key3", "value3"}
});
//判断Map是否为空
MapUtil.isEmpty(map);
MapUtil.isNotEmpty(map);
// AnnotationUtil
// 注解工具类,可用于获取注解与注解中指定的值。
//获取指定类、方法、字段、构造器上的注解列表
Annotation[] annotationList = AnnotationUtil.getAnnotations(HutoolController.class, false);
System.out.println(StrUtil.format("annotationUtil annotations:{}", annotationList));
//获取指定类型注解
Api api = AnnotationUtil.getAnnotation(HutoolController.class, Api.class);
System.out.println(StrUtil.format("annotationUtil api value:{}", api.description()));
//获取指定类型注解的值
Object annotationValue = AnnotationUtil.getAnnotationValue(HutoolController.class, RequestMapping.class);
}
}
/**
* 加密解密工具类
*/
static class HutSecureUtil{
public static void md5Test() {
//MD5加密
String str = "123456";
String md5Str = SecureUtil.md5(str);
}
public static void sh1Test() {
//sha1加密
String str = "123456";
String sha1Str = SecureUtil.sha1(str);
}
}
}