change method name

This commit is contained in:
Looly 2022-04-28 01:59:51 +08:00
parent af1d615ca9
commit dca95552a8
12 changed files with 58 additions and 225 deletions

View File

@ -3,169 +3,10 @@
-------------------------------------------------------------------------------------------------------------
# 5.8.0.M5 (2022-04-27)
# 6.0.0.M1 (2022-04-28)
### ❌不兼容特性
* 【extra 】 升级jakarta.validation-api到3.x包名变更导致不能向下兼容
### 🐣新特性
### 🐞Bug修复
* 【db 】 修复RedisDS无法设置maxWaitMillis问题issue#I54TZ9@Gitee
-------------------------------------------------------------------------------------------------------------
# 5.8.0.M4 (2022-04-27)
### ❌不兼容特性
* 【json 】 【可能兼容问题】JSONArray删除部分构造
* 【json 】 【可能兼容问题】JSONTokener使用InputStream作为源时由系统编码变更为UTF-8
### 🐣新特性
* 【core 】 BeanUtil增加toBean重载pr#598@Gitee
* 【json 】 新增JSONParser
* 【json 】 JSON新增在解析时的过滤方法issue#I52O85@Gitee
* 【core 】 添加ArrayUtil.distinct、CollUtil.distinct重载issue#2256@Github
* 【core 】 添加TransMap、FuncMap、ReferenceConcurrentMap、WeakConcurrentMap
* 【json 】 添加ObjectMapper
* 【core 】 CHINESE_NAME正则条件放宽pr#599@Gitee
* 【extra 】 增加JakartaServletUtilissue#2271@Github
* 【poi 】 ExcelWriter支持重复别名的数据写出issue#I53APY@Gitee
* 【core 】 增加Hashidsissue#I53APY@Gitee
* 【core 】 ReflectUtil.newInstanceIfPossible添加枚举、数组等类型的默认实现
* 【core 】 CombinationAnnotationElement增加过滤pr#605@Gitee
* 【all 】 精简CHANGELOG
* 【core 】 新增AnsiEncoder
* 【log 】 新增彩色日式输出风格ConsoleColorLogpr#607@Gitee
### 🐞Bug修复
* 【core 】 修复StrUtil.firstNonX非static问题issue#2257@Github
* 【core 】 修复SimpleCache线程安全问题
* 【core 】 修复ClassLoaderUtil中可能的关联ClassLoader错位问题
* 【extra 】 修复Sftp错误内容解析大小写问题issue#I53GPI@Gitee
* 【core 】 修复Tailer当文件内容为空时会报异常问题pr#602@Gitee
-------------------------------------------------------------------------------------------------------------
# 5.8.0.M3 (2022-04-14)
### ❌不兼容特性
* 【core 】 StreamProgress#progress方法参数变更为2个pr#594@Gitee
* 【core 】 SimpleCache的raw key使用Mutable
* 【core 】 ArrayUtil.join删除已经弃用的无用原始类型重载
* 【core 】 删除Holder类ReUtil.extractMultiAndDelPre方法参数改为Mutable
### 🐣新特性
* 【core 】 CopyOptions支持以Lambda方式设置忽略属性列表pr#590@Gitee
* 【core 】 增加中文姓名正则及其校验pr#592@Gitee
* 【core 】 Snowflake支持sequence使用随机数issue#I51EJY@Gitee
* 【core 】 JarClassLoader增加构造pr#593@Gitee
* 【core 】 增加Pid以便获取单例pid
* 【core 】 Img增加全覆盖水印pressTextFullpr#595@Gitee
* 【core 】 ByteUtil.numberToBytes增加Byte判断issue#2252@Github
* 【core 】 CopyOptions添加converter可以自定义非全局类型转换
* 【core 】 添加了设置从绝对路径加载数据库配置文件的功能pr#2253@Github
### 🐞Bug修复
* 【core 】 修复UserAgentUtil识别Linux出错issue#I50YGY@Gitee
* 【poi 】 修复ExcelWriter.getDisposition方法生成错误issue#2239@Github
* 【core 】 修复UrlBuilder重复编码的问题issue#2243@Github
* 【http 】 修复HttpRequest中urlQuery处理get请求参数的时候会导致空指针异常pr#2248@Github
* 【core 】 修复SimpleCache在get时未使用读锁可能导致的问题
* 【aop 】 修复JdkInterceptor before 方法拦截 return false 仍然执行了 after 的拦截问题issue#I5237G@Gitee
-------------------------------------------------------------------------------------------------------------
# 5.8.0.M2 (2022-04-02)
### ❌不兼容特性
* 【extra 】 【可能兼容问题】BeanCopierCache的key结构变更
* 【http 】 【可能兼容问题】HttpInterceptor增加泛型标识HttpRequest中配置汇总于HttpConfig
* 【core 】 【可能兼容问题】UrlQuery.addQuery参数2从String变更为Object
* 【core 】 【可能兼容问题】WorkbookUtil.createBook实现改为WorkbookFactory.create
### 🐣新特性
* 【core 】 MapUtil增加entry、ofEntries方法
* 【core 】 ZipWriter增加add方法重载
* 【core 】 IterUtil增加filtered增加FilterIterissue#2228
* 【core 】 增加NodeListIter、ResettableIter
* 【crypto 】 HmacAlgorithm增加SM4CMACissue#2206@Github
* 【http 】 增加HttpConfig响应支持拦截issue#2217@Github
* 【core 】 增加BlockPolicyThreadUtil增加newFixedExecutor方法pr#2231@Github
* 【crypto 】 BCMacEngine、Mac、CBCBlockCipherMacEngine、SM4MacEngineissue#2206@Github
### 🐞Bug修复
* 【core 】 IdcardUtil#getCityCodeByIdCard位数问题issue#2224@Github
* 【core 】 修复urlWithParamIfGet函数逻辑问题issue#I50IUD@Gitee
* 【core 】 修复IoUtil.readBytes限制长度读取问题issue#2230@Github
* 【http 】 修复HttpRequest中编码对URL无效的问题issue#I50NHQ@Gitee
* 【poi 】 修复读取excel抛NPE错误pr#2234@Github
-------------------------------------------------------------------------------------------------------------
# 5.8.0.M1 (2022-03-28)
### ❌不兼容特性
* 【db 】 【不向下兼容 】增加MongoDB4.x支持返回MongoClient变更pr#568@Gitee
* 【json 】 【可能兼容问题】修改JSONObject结构继承自MapWrapper
* 【core 】 【可能兼容问题】BeanCopier重构新建XXXCopier删除XXXValueProvider
* 【core 】 【可能兼容问题】URLEncoder废弃URLEncoderUtil使用RFC3986
* 【core 】 【可能兼容问题】Base32分离编码和解码以便减少数据加载支持Hex模式
* 【core 】 【可能兼容问题】Base58分离编码和解码
* 【core 】 【可能兼容问题】Base62分离编码和解码增加inverted模式支持
* 【core 】 【兼容问题 】PunyCode参数由String改为Charsequence
* 【cron 】 【可能兼容问题】SimpleValueParser改名为AbsValueParser改为abstract
* 【poi 】 【可能兼容问题】ExcelUtil.getBigWriter返回值改为BigExcelWriter
* 【core 】 【可能兼容问题】Opt.ofEmptyAble参数由List改为Collection子类pr#580@Gitee
* 【json 】 【可能兼容问题】JSON转Bean时使用JSON本身的相关设置而非默认issue#2212@Github
* 【json 】 【可能兼容问题】JSONConfig中isOrder废弃默认全部有序
### 🐣新特性
* 【http 】 HttpRequest.form采用TableMap方式issue#I4W427@Gitee
* 【core 】 AnnotationUtil增加getAnnotationAlias方法pr#554@Gitee
* 【core 】 FileUtil.extName增加对tar.gz特殊处理issue#I4W5FS@Gitee
* 【crypto 】 增加XXTEA实现issue#I4WH2X@Gitee
* 【core 】 增加Table实现issue#2179@Github
* 【core 】 增加UniqueKeySetissue#I4WUWR@Gitee
* 【core 】 阿拉伯数字转换成中文对发票票面金额转换的扩展pr#570@Gitee
* 【core 】 ArrayUtil增加replace方法pr#570@Gitee
* 【core 】 CsvReadConfig增加自定义标题行行号issue#2180@Github
* 【core 】 FileAppender优化初始List大小pr#2197@Github
* 【core 】 Base32增加pad支持pr#2195@Github
* 【core 】 Dict增加setFields方法pr#578@Gitee
* 【db 】 新加db.meta的索引相关接口pr#563@Gitee
* 【db 】 Oracle中Column#typeName后的长度去掉pr#563@Gitee
* 【poi 】 优化ExcelReader采用只读模式pr#2204@Gitee
* 【poi 】 优化ExcelBase将alias放入
* 【poi 】 优化ExcelBase将alias放入
* 【core 】 改进StrUtil#startWith、endWith性能
* 【cron 】 增加CronPatternParser、MatcherTable
* 【http 】 GlobalHeaders增加系统属性allowUnsafeServerCertChange、allowUnsafeRenegotiation
* 【http 】 UserAgentUtil 解析增加MiUI/XiaoMi浏览器判断逻辑pr#581@Gitee
* 【core 】 FileAppender添加锁构造pr#2211@Github
* 【poi 】 ExcelReader增加构造pr#2213@Github
* 【core 】 MapUtil提供change函数EnumUtil提供getBy函数通过lambda进行枚举字段映射pr#583@Gitee
* 【core 】 CompareUtil增加comparingIndexedpr#585@Gitee
* 【db 】 DruidDataSource构建时支持自定义参数issue#I4ZKCW@Gitee
* 【poi 】 ExcelWriter增加addImg重载issue#2218@Github
* 【bloomFilter】 增加FuncFilter
* 【http 】 增加GlobalInterceptorissue#2217
### 🐞Bug修复
* 【core 】 修复ObjectUtil.hasNull传入null返回true的问题pr#555@Gitee
* 【core 】 修复NumberConverter对数字转换的问题issue#I4WPF4@Gitee
* 【core 】 修复ReflectUtil.getMethods获取接口方法问题issue#I4WUWR@Gitee
* 【core 】 修复NamingCase中大写转换问题pr#572@Gitee
* 【http 】 修复GET重定向时携带参数问题issue#2189@Github
* 【core 】 修复FileUtil、FileCopier相对路径获取父路径错误问题pr#2188@Github
* 【core 】 修复CopyOptions中fieldNameEditor无效问题issue#2202@Github
* 【json 】 修复JSON对Map.Entry的解析问题
* 【core 】 修复MapConverter中map与map转换兼容问题
* 【poi 】 解决sax读取时POI-5.2.x兼容性问题
* 【core 】 修复判断两段时间区间交集问题pr#2210@Github
* 【http 】 修复标签误删问题issue#I4Z7BV@Gitee
* 【core 】 修复Win下文件名带*问题pr#584@Gitee
* 【core 】 FileUtil.getMimeType增加rar、7z支持issue#I4ZBN0@Gitee
* 【json 】 JSON修复transient设置无效问题issue#2212@Github
* 【core 】 修复IterUtil.getElementType获取结果为null的问题issue#2222@Github
* 【core 】 修复农历转公历在闰月时错误issue#I4ZSGJ@Gitee
### 🐞Bug修复

View File

@ -81,27 +81,21 @@ Hutool exists to reduce code search costs and avoid bugs caused by imperfect cod
## 🛠Module
A Java-based tool class for files, streams, encryption and decryption, transcoding, regular, thread, XML and other JDK methods for encapsulationcomposing various Util tool classes, as well as providing the following modules
| module | description |
| -------------------|-------------------------------------------------------------------------------------------------------------------------|
| hutool-aop | JDK dynamic proxy encapsulation to provide non-IOC faceting support |
| hutool-bloomFilter | Bloom filtering to provide some Hash algorithm Bloom filtering |
| hutool-cache | Simple cache |
| hutool-core | Core, including Bean operations, dates, various Utils, etc. |
| hutool-cron | Task scheduling with Cron expressions |
| hutool-crypto | Provides symmetric, asymmetric and digest algorithm encapsulation |
| hutool-db | Db operations based on ActiveRecord thinking. |
| hutool-dfa | DFA models, such as multi-keyword lookups |
| hutool-extra | Extension modules, third-party wrappers (template engine, mail, servlet, QR code, Emoji, FTP, word splitting, etc.) |
| hutool-http | Http client |
| hutool-log | Log (facade) |
| hutool-script | Script execution encapsulation, e.g. Javascript |
| hutool-setting | Stronger Setting Profile tools and Properties tools |
| hutool-system | System parameter tools (JVM information, etc.) |
| hutool-json | JSON |
| hutool-captcha | Image Captcha |
| hutool-poi | Tools for working with Excel and Word in POI |
| hutool-socket | Java-based tool classes for NIO and AIO sockets |
| hutool-jwt | JSON Web Token (JWT) implement |
| module | description |
|----------------|---------------------------------------------------------------------------------------------------------------------|
| hutool-core | Core, including Bean operations, dates, various Utils, etc. |
| hutool-cron | Task scheduling with Cron expressions |
| hutool-crypto | Provides symmetric, asymmetric and digest algorithm encapsulation |
| hutool-db | Db operations based on ActiveRecord thinking. |
| hutool-extra | Extension modules, third-party wrappers (template engine, mail, servlet, QR code, Emoji, FTP, word splitting, etc.) |
| hutool-http | Http client |
| hutool-log | Log (facade) |
| hutool-script | Script execution encapsulation, e.g. Javascript |
| hutool-setting | Stronger Setting Profile tools and Properties tools |
| hutool-json | JSON |
| hutool-poi | Tools for working with Excel and Word in POI |
| hutool-socket | Java-based tool classes for NIO and AIO sockets |
| hutool-swing | Swing and AWT tools |
Each module can be introduced individually, or all modules can be introduced by introducing `hutool-all` as required.

View File

@ -51,6 +51,7 @@
-------------------------------------------------------------------------------
## 📚简介
Hutool是一个小而全的Java工具类库通过静态方法封装降低相关API的学习成本提高工作效率使Java拥有函数式语言般的优雅让Java语言也可以“甜甜的”。
Hutool中的工具方法来自每个用户的精雕细琢它涵盖了Java开发底层代码中的方方面面它既是大型项目开发中解决小问题的利器也是小型项目中的效率担当
@ -68,42 +69,36 @@ Hutool的目标是使用一个工具方法代替一段复杂代码从而最
以计算MD5为例
- 👴【以前】打开搜索引擎 -> 搜“Java MD5加密” -> 打开某篇博客-> 复制粘贴 -> 改改好用
- 👦【现在】引入Hutool -> SecureUtil.md5()
- 👦【现在】引入Hutool -> SecureUtil.md5()
Hutool的存在就是为了减少代码搜索成本避免网络上参差不齐的代码出现导致的bug。
-------------------------------------------------------------------------------
## 🛠️包含组件
一个Java基础工具类对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装组成各种Util工具类同时提供以下组件
| 模块 | 介绍 |
| -------------------|---------------------------------------------------------------------------------- |
| hutool-aop | JDK动态代理封装提供非IOC下的切面支持 |
| hutool-bloomFilter | 布隆过滤提供一些Hash算法的布隆过滤 |
| hutool-cache | 简单缓存实现 |
| hutool-core | 核心包括Bean操作、日期、各种Util等 |
| hutool-cron | 定时任务模块提供类Crontab表达式的定时任务 |
| hutool-crypto | 加密解密模块,提供对称、非对称和摘要算法封装 |
| hutool-db | JDBC封装后的数据操作基于ActiveRecord思想 |
| hutool-dfa | 基于DFA模型的多关键字查找 |
| hutool-extra | 扩展模块对第三方封装模板引擎、邮件、Servlet、二维码、Emoji、FTP、分词等 |
| hutool-http | 基于HttpUrlConnection的Http客户端封装 |
| hutool-log | 自动识别日志实现的日志门面 |
| hutool-script | 脚本执行封装例如Javascript |
| hutool-setting | 功能更强大的Setting配置文件和Properties封装 |
| hutool-system | 系统参数调用封装JVM信息等 |
| hutool-json | JSON实现 |
| hutool-captcha | 图片验证码实现 |
| hutool-poi | 针对POI中Excel和Word的封装 |
| hutool-socket | 基于Java的NIO和AIO的Socket封装 |
| hutool-jwt | JSON Web Token (JWT)封装实现 |
| 模块 | 介绍 |
|----------------|------------------------------------------------|
| hutool-core | 核心包括Bean操作、日期、各种Util等 |
| hutool-cron | 定时任务模块提供类Crontab表达式的定时任务 |
| hutool-crypto | 加密解密模块,提供对称、非对称和摘要算法封装 |
| hutool-db | JDBC封装后的数据操作基于ActiveRecord思想 |
| hutool-extra | 扩展模块对第三方封装模板引擎、邮件、Servlet、二维码、Emoji、FTP、分词等 |
| hutool-http | 基于HttpUrlConnection的Http客户端封装 |
| hutool-log | 自动识别日志实现的日志门面 |
| hutool-setting | 功能更强大的Setting配置文件和Properties封装 |
| hutool-json | JSON实现 |
| hutool-poi | 针对POI中Excel和Word的封装 |
| hutool-socket | 基于Java的NIO和AIO的Socket封装 |
| hutool-swing | Swing和JWT相关封装 |
可以根据需求对每个模块单独引入,也可以通过引入`hutool-all`方式引入所有模块。
-------------------------------------------------------------------------------
## 📝文档
## 📝文档
[📘中文文档](https://www.hutool.cn/docs/)
@ -138,17 +133,20 @@ Hutool的存在就是为了减少代码搜索成本避免网络上参差不
## 📦安装
### 🍊Maven
在项目的pom.xml的dependencies中加入以下内容:
```xml
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>6.0.0.M1</version>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>6.0.0.M1</version>
</dependency>
```
### 🍐Gradle
```
implementation 'cn.hutool:hutool-all:6.0.0.M1'
```
@ -165,7 +163,8 @@ implementation 'cn.hutool:hutool-all:6.0.0.M1'
### 🚽编译安装
访问Hutool的Gitee主页[https://gitee.com/dromara/hutool](https://gitee.com/dromara/hutool) 下载整个项目源码v5-master或v5-dev分支都可然后进入Hutool项目目录执行
访问Hutool的Gitee主页[https://gitee.com/dromara/hutool](https://gitee.com/dromara/hutool)
下载整个项目源码v5-master或v5-dev分支都可然后进入Hutool项目目录执行
```sh
./hutool.sh install
@ -193,7 +192,6 @@ Hutool的源码分为两个分支功能如下
- [Gitee issue](https://gitee.com/dromara/hutool/issues)
- [Github issue](https://github.com/dromara/hutool/issues)
### 🧬贡献代码的步骤
1. 在Gitee或者Github上fork项目到自己的repo

View File

@ -147,7 +147,7 @@ public class DateUtil extends CalendarUtil {
*
* @return 当前时间的标准形式字符串
*/
public static String now() {
public static String formatNow() {
return formatDateTime(new DateTime());
}
@ -156,7 +156,7 @@ public class DateUtil extends CalendarUtil {
*
* @return 当前日期的标准形式字符串
*/
public static String today() {
public static String formatToday() {
return formatDate(new DateTime());
}
@ -804,7 +804,7 @@ public class DateUtil extends CalendarUtil {
* @since 3.1.1
*/
public static DateTime parseTimeToday(CharSequence timeString) {
timeString = StrUtil.format("{} {}", today(), timeString);
timeString = StrUtil.format("{} {}", formatNow(), timeString);
if (1 == StrUtil.count(timeString, ':')) {
// 时间格式为 HH:mm
return parse(timeString, DatePattern.NORM_DATETIME_MINUTE_PATTERN);

View File

@ -1877,7 +1877,7 @@ public class CharSequenceUtil {
* @return 截取后的字符串数组
* @see StrSplitter#splitByLength(CharSequence, int)
*/
public static String[] split(CharSequence str, int len) {
public static String[] splitToArray(CharSequence str, int len) {
return StrSplitter.splitByLength(str, len);
}

View File

@ -49,10 +49,10 @@ public class DateUtilTest {
Assert.assertNotNull(date3);
// 当前日期字符串格式yyyy-MM-dd HH:mm:ss
String now = DateUtil.now();
String now = DateUtil.formatNow();
Assert.assertNotNull(now);
// 当前日期字符串格式yyyy-MM-dd
String today = DateUtil.today();
String today = DateUtil.formatToday();
Assert.assertNotNull(today);
}

View File

@ -27,10 +27,10 @@ public class ConcurrencyTesterTest {
Console.log("开始执行第{}个",i);
ct.test(() -> {
// 需要并发测试的业务代码
Console.log("当前执行线程:" + Thread.currentThread().getName()+" 产生时间 "+ DateUtil.now());
Console.log("当前执行线程:" + Thread.currentThread().getName()+" 产生时间 "+ DateUtil.formatNow());
ThreadUtil.sleep(RandomUtil.randomInt(1000, 3000));
});
}
Console.log("全部线程执行完毕 "+DateUtil.now());
Console.log("全部线程执行完毕 "+DateUtil.formatNow());
}
}

View File

@ -7,12 +7,12 @@ import cn.hutool.core.util.IdUtil;
/**
* 测试定时任务当触发到定时的时间点时执行doTest方法
*
*
* @author looly
*
*/
public class TestJob {
private final String jobId = IdUtil.simpleUUID();
/**
@ -20,7 +20,7 @@ public class TestJob {
*/
public void doTest() {
// String name = Thread.currentThread().getName();
Console.log("Test Job {} running... at {}", jobId, DateUtil.now());
Console.log("Test Job {} running... at {}", jobId, DateUtil.formatNow());
}
/**

View File

@ -17,7 +17,7 @@ public class CronPatternTest {
CronPattern pattern;
// 任何时间匹配
pattern = CronPattern.of("* * * * * *");
assertMatch(pattern, DateUtil.now());
assertMatch(pattern, DateUtil.formatNow());
}
@Test

View File

@ -394,7 +394,7 @@ public class JSONObjectTest {
.set("name", "nameValue")
.set("date", "08:00:00");
UserA bean = JSONUtil.toBean(userAJson.toString(), UserA.class);
Assert.assertEquals(DateUtil.today() + " 08:00:00", DateUtil.date(bean.getDate()).toString());
Assert.assertEquals(DateUtil.formatToday() + " 08:00:00", DateUtil.date(bean.getDate()).toString());
}
@Test

View File

@ -82,6 +82,6 @@ public class ConsoleColorLog extends ConsoleLog {
}
final String template = AnsiEncoder.encode(COLOR_TIME, "[%s]", colorFactory.apply(level), "[%-5s]%s", COLOR_CLASSNAME, "%-30s: ", COLOR_NONE, "%s%n");
System.out.format(template, DateUtil.now(), level.name(), " - ", ClassUtil.getShortClassName(getName()), StrUtil.format(format, arguments));
System.out.format(template, DateUtil.formatNow(), level.name(), " - ", ClassUtil.getShortClassName(getName()), StrUtil.format(format, arguments));
}
}

View File

@ -122,7 +122,7 @@ public class ConsoleLog extends AbstractLog {
final Dict dict = Dict.create()
.set("date", DateUtil.now())
.set("date", DateUtil.formatNow())
.set("level", level.toString())
.set("name", this.name)
.set("msg", StrUtil.format(format, arguments));