Releases: ifeilong/feilong
4.1.2
feilong 4.1.2 发布了,让Java开发更简便的工具库
- 让你从大量重复的底层代码中脱身,提高开发效率;
- 让你的代码
更简炼
,易写
、易读
、易于维护
;
文档地址: http://feilong-core.mydoc.io/
maven 依赖配置:
<dependency>
<groupId>com.github.ifeilong</groupId>
<artifactId>feilong</artifactId>
<version>4.1.2</version>
</dependency>
Gradle 依赖配置:
com.github.ifeilong:feilong:4.1.2
本次升级共有 12
处变更, 具体参见 4.1.2 milestone
🐛 bug
#736 ResponseDownloadUtil 没有设置文件大小, 空指针, 但这个文件大小只做日志用的 [feilong-servlet]
🎣 feilong-io
#739 ✨ 新建 com.feilong.io.IOReaderUtil.readToList [enhancement]
⬆️ 依赖升级
#730 maven-dependency-plugin 3.6.1 3.8.0
#729 maven-javadoc-plugin 3.6.3 3.10.0
#722 maven-project-info-reports-plugin 3.5.0升级3.7.0
#723 maven-scm-plugin 2.0.1 升级2.1.0
#742 maven-site-plugin 3.12.1 升级 3.20.0
#725 maven-surefire-plugin 3.2.3 升级3.5.0
#743 taglist-maven-plugin 升级到 3.1.0
其他
#740 com.feilong.context.converter.StringToBeanConverter接口移动到 feilong-core包 路径保持不变
#738 com.feilong.core.lang.StringUtil.toSingleValueMap(String, Class, Class) 要支持定制转换value类
#741 标识 com.feilong.context.converter.StringToBeanConverter接口 @FunctionalInterface
4.1.1
feilong 4.1.1 发布了,让Java开发更简便的工具库
- 让你从大量重复的底层代码中脱身,提高开发效率;
- 让你的代码
更简炼
,易写
、易读
、易于维护
;
文档地址: http://feilong-core.mydoc.io/
maven 依赖配置:
<dependency>
<groupId>com.github.ifeilong</groupId>
<artifactId>feilong</artifactId>
<version>4.1.1</version>
</dependency>
Gradle 依赖配置:
com.github.ifeilong:feilong:4.1.1
本次升级共有 11
处变更, 具体参见 4.1.1 milestone
feilong-net-filetransfer
#716 ✨ FTPFileTransfer 支持传入 logTraceContext [enhancement]
#715 ✨ SFTPFileTransfer 要支持传入 logTraceContext [enhancement]
#714 ✨ 优化 com.feilong.net.filetransfer.AbstractFileTransfer disconnect方法 放到 finally体关闭 [enhancement]
#734 优化 com.feilong.net.filetransfer.AbstractFileTransfer.uploadFile(String, String, String) 使用 try-with-resources 关闭inputstream流写法
#735 修改 com.feilong.net.filetransfer.AbstractFileTransfer.upload(FileInputStream, String) javadoc [javadoc]
⬆️ 依赖升级
#732 log4j2 升级到 2.23.1
#717 maven-clean-plugin 升级到 3.4.0
#718 maven-compiler-plugin 升级到3.13.0
#720 maven-install-plugin 3.1.1 升级到3.1.2
#726 nexus-staging-maven-plugin 1.6.13 1.6.14 1.7.0
#733 springframework升级到 5.3.37 optional=true 依赖
4.1.0
feilong 4.1.0 发布了,让Java开发更简便的工具库
- 让你从大量重复的底层代码中脱身,提高开发效率;
- 让你的代码
更简炼
,易写
、易读
、易于维护
;
文档地址: http://feilong-core.mydoc.io/
maven 依赖配置:
<dependency>
<groupId>com.github.ifeilong</groupId>
<artifactId>feilong</artifactId>
<version>4.1.0</version>
</dependency>
Gradle 依赖配置:
com.github.ifeilong:feilong:4.1.0
本次升级共有 11
处变更, 具体参见 4.1.0 milestone
🐛 bug
#706 com.feilong.net.http.HttpLogHelper.autoLog(HttpRequest, ConnectionConfig, String, Object...) 死循环了 [feilong-net]
🍑 feilong-core
#708 ✨ 新建 ConvertUtil.toStringList(Object) 将list 转成 list 的转换方法 [enhancement]
🎸 feilong-context
#704 ✨ com.feilong.context.invoker.AbstractResponseCommandBuilder.createStringToBeanConverter() 新增responseString 参数,方便实现类基于responseString 来决策转换器 [enhancement]
#703 ✨ com.feilong.context.invoker.ResponseCommandBuilder<R, T> 泛型T extends ResponseCommand 去掉, 要支持list 等 [enhancement]
🍈 feilong-email
#702 丰富 com.feilong.net.mail.util.MessageSendUtil.send(Message) 异常日志 [javadoc log]
🍖 feilong-json
#705 com.feilong.json.JsonHelper.isNeedConvertToJSONArray(Object) 改成 public
🤖 feilong-net-bot
#709 ✨ 新建 com.feilong.net.bot.LogAndBotCombination.debug(CombinationConfig, String, Object...) 机器人支持是否发机器人的开关 [enhancement]
#712 ✨ 新建com.feilong.net.bot.LogAndBotCombination.error(CombinationConfig, String, Object...) [enhancement]
#710 ✨ 新建com.feilong.net.bot.LogAndBotCombination.info(CombinationConfig, String, Object...) [enhancement]
#711 ✨ 新建com.feilong.net.bot.LogAndBotCombination.warn(CombinationConfig, String, Object...) [enhancement]
feilong-net-filetransfer
#713 丰富 com.feilong.net.filetransfer.sftp.SFTPFileTransfer javadoc [javadoc]
4.0.8
feilong 4.0.8 发布了,让Java开发更简便的工具库
- 让你从大量重复的底层代码中脱身,提高开发效率;
- 让你的代码
更简炼
,易写
、易读
、易于维护
;
文档地址: http://feilong-core.mydoc.io/
maven 依赖配置:
<dependency>
<groupId>com.github.ifeilong</groupId>
<artifactId>feilong</artifactId>
<version>4.0.8</version>
</dependency>
Gradle 依赖配置:
com.github.ifeilong:feilong:4.0.8
本次升级共有 28
处变更, 具体参见 4.0.8 milestone
🐛 bug
#679 com.feilong.lib.json.ToStringUtil.OBJECT_START 是不是写反了 删除 com.feilong.lib.json.ToStringUtil.OBJECT_START [feilong-json]
🍑 feilong-core
#701 ✨ com.feilong.core.lang.StringUtil 新增 NBSP常量 [enhancement]
#681 完善com.feilong.core.util.ResourceBundleUtil.toBean(ResourceBundle, Class) 日志 [javadoc]
🎸 feilong-context
#684 com.feilong.spring.web.util.WebSpringUtil.getRequest() 应该用 currentRequestAttributes [代码优化]
🍖 feilong-json
#668 JsonToJavaConfig.setJavaIdentifierTransformer(JavaIdentifierTransformer) javadoc补充下 SeparatorToCamelCaseJavaIdentifierTransformer [javadoc]
🍷 feilong-net
#688 HttpRequest 新增一个 logTraceContext 表示, 让这个调用的所有log 都追加这个logkey 方便排查问题
#690 com.feilong.net.http.HttpLogHelper.createHttpRequestLog(HttpRequest) 增加javadoc [javadoc]
🤖 feilong-net-bot
#683 🗑️ com.feilong.net.bot.dingtalk.DingTalkBot.sendMessage(String, String, String...) sendMessage过期 [deprecated]
#667 ✨ 新增 com.feilong.net.bot.Bot.sendMessage(String, MessageParams) 机器人log组件要支持at人 [enhancement]
🔒 feilong-security
#699 OnewayEncryption 改成public
#698 OnewayType 改成public 并且完善javadoc
#437 ✨ com.feilong.security.oneway.SHA256Util.encodeUpperCase(String) 新增大写的结果 [enhancement]
#692 ✨ 新建 com.feilong.security.oneway.SHA1Util.encodeUpperCase(String) 返回大写结果 [enhancement]
#694 ✨ 新建 com.feilong.security.oneway.SHA384Util.encodeUpperCase(String) 返回大写结果 [enhancement]
#695 ✨ 新建 com.feilong.security.oneway.SHA512Util.encodeUpperCase(String) 返回大写的结果 [enhancement]
#697 ✨ 新建 com.feilong.security.oneway.Sm3Util.encodeUpperCase(String) 返回大写结果 [enhancement]
#687 ✨ 新建com.feilong.security.oneway.MD5Util.encodeUpperCase(String) md5 encode 大写 [enhancement]
#693 更新 com.feilong.security.oneway.SHA384Util javadoc [javadoc]
#696 更新 com.feilong.security.oneway.SHA512Util javadoc [javadoc]
#691 更新com.feilong.security.oneway.SHA256Util javadoc [javadoc]
⬆️ 依赖升级
#670 (dependencyManagement)logback 升级到 1.3.14
#672 (only for test) log4j 升级到 2.22.0
#682 log4j 2 升级到 2.22.1
#673 maven-javadoc-plugin 升级到3.6.3
#674 maven-plugin-plugin 升级到 3.10.2
#676 maven-surefire-plugin 升级到3.2.3
#671 spring 升级到 5.3.31
其他
#689 代码优化 com.feilong.core.lang.StringUtil.formatPattern(String, Object...) 换成static import [代码优化]
4.0.7
feilong 4.0.7 发布了,让Java开发更简便的工具库
- 让你从大量重复的底层代码中脱身,提高开发效率;
- 让你的代码
更简炼
,易写
、易读
、易于维护
;
文档地址: http://feilong-core.mydoc.io/
maven 依赖配置:
<dependency>
<groupId>com.github.ifeilong</groupId>
<artifactId>feilong</artifactId>
<version>4.0.7</version>
</dependency>
Gradle 依赖配置:
com.github.ifeilong:feilong:4.0.7
本次升级共有 6
处变更, 具体参见 4.0.7 milestone
🐛 bug
#662 RequestLogHelper 日志 paramString null显示成empty [feilong-servlet feilong-context]
🍑 feilong-core
#666 ✨ com.feilong.core.util.CollectionsUtil 新建 Pair<List<O>, List<O>> splitDuplicate(Collection<O> objectCollection,String...propertyNames)
方法,根据属性值,分隔新数据和重复的数据 [enhancement]
使用场景:
数据库中查询到以下数据,该数据来源都是MQ发过来的数据,原样保存到了数据库
现在在处理业务逻辑的时候 发现 code列有数据重复, 现在分开来逻辑处理, 比如 id 28958
和 28142
重复了, 28958
是新数据, 28142
是老数据, 现在需要把新数据28958
更新到A表,而老数据28142
做逻辑删除处理
id | create_time | code | type |
---|---|---|---|
29144 | 2023-12-13T16:20:35 | 79598160 | 一般 |
29147 | 2023-12-13T16:20:35 | 79598155 | 独家 |
28958 |
2023-12-13T16:20:35 | 79584312 |
一般 |
28142 |
2023-12-13T10:07:16 | 79584312 |
一般 |
28225 | 2023-12-13T10:07:16 | 79584239 | 独家 |
28999 |
2023-12-13T16:20:35 | 79584197 |
一般 |
28233 |
2023-12-13T10:07:16 | 79584197 |
一般 |
28208 | 2023-12-13T10:07:16 | 79584172 | 独家 |
28139 | 2023-12-13T10:07:16 | 79583943 | 一般 |
此时你可以使用以下代码:
//按照创建时间排过序了
List<Dto> newStatusData = dao.queryNewStatusData();
if (isNullOrEmpty(newStatusData)){
return;
}
Pair<List<Dto>, List<Dto>> pair = CollectionsUtil.splitDuplicate(newStatusData,"code");
//查找重复的, 留下最新的, 把老的数据直接设置成delete
//对应上表格中,剔除 (28142 和 28233)的数据
List<Dto> newData = pair.getLeft();
//do logic
//对应上表格中的 28142 和 28233
List<Dto> duplicateData = pair.getRight();
//do logic
⬆️ 依赖升级
#664 logback 升级到1.3.13
#659 maven-project-info-reports-plugin 升级到3.5.0
#660 maven-surefire-plugin 升级到 3.2.2
#661 versions-maven-plugin 升级到 2.16.2
4.0.6
feilong 4.0.6 发布了,让Java开发更简便的工具库
- 让你从大量重复的底层代码中脱身,提高开发效率;
- 让你的代码
更简炼
,易写
、易读
、易于维护
;
文档地址: http://feilong-core.mydoc.io/
maven 依赖配置:
<dependency>
<groupId>com.github.ifeilong</groupId>
<artifactId>feilong</artifactId>
<version>4.0.6</version>
</dependency>
Gradle 依赖配置:
com.github.ifeilong:feilong:4.0.6
本次升级共有 16
处变更, 具体参见 4.0.6 milestone
🐛 bug
#76 post 请求 显示的full url不全 [feilong-servlet]
说明: 相关日志,从直接使用request queryString,改成解析请求参数拼接
👽 不兼容
#643 ✨ PartitionThreadConfig 默认初始最大线程从100改成20,并且计算的时候 大于20时候 info 级别日志提醒 [enhancement feilong-core]
🍑 feilong-core
#644 ✨ 多线程执行时,内部日志支持默认标识key,方便搜索 [enhancement]
#641 ✨ 新建 DefaultPartitionPerHandler 多线程处理单元素的方法, 并且内容try catch exception 和计算耗时时间 [enhancement]
#652 ✨ 新建 PartitionPerElementHandler 分区中的每个线程中的每个元素执行 [enhancement]
#649 ✨ 新建 com.feilong.core.lang.ThreadUtil.executeUsePerElement(List, Map<String, ?>, PartitionPerElementHandler) [enhancement]
#650 ✨ 新建 com.feilong.core.lang.ThreadUtil.executeUsePerElement(List, PartitionPerElementHandler) [enhancement]
#651 ✨ 新建 com.feilong.core.lang.ThreadUtil.executeUsePerElement(List, PartitionThreadConfig, Map<String, ?>, PartitionPerElementHandler) [enhancement]
#654 ✨ 新建 com.feilong.core.util.MapUtil.getDefaultEmptyStringIfNull(Map<K, V>, K) [enhancement]
#645 🗑️ 标识 com.feilong.core.lang.ThreadUtil.execute(List, int, Map<String, ?>, PartitionPerHandler) Deprecated [deprecated]
#646 🗑️ 标识 com.feilong.core.lang.ThreadUtil.execute(List, int, Map<String, ?>, PartitionRunnableBuilder) 过时 [deprecated]
#647 🗑️ 标识 com.feilong.core.lang.ThreadUtil.execute(List, int, PartitionPerHandler) 过时 [deprecated]
#648 🗑️ 标识 com.feilong.core.lang.ThreadUtil.execute(List, int, PartitionRunnableBuilder) 过时 [deprecated]
🎸 feilong-context
#655 ✨ 新建 com.feilong.context.log.RequestLogHelper 个能快速输出请求url 请求类型, 请求参数的方法 [enhancement]
🤖 feilong-net-bot
#642 ✨ 机器人开放获取 key的方法,方便记录日志, 比如钉钉机器人需要可以返回token [enhancement]
🍼 feilong-servlet
#656 ✨ 新建 com.feilong.servlet.http.RequestUtil.parseParamsToQueryString(HttpServletRequest) [enhancement]
4.0.5
feilong 4.0.5 发布了,让Java开发更简便的工具库
- 让你从大量重复的底层代码中脱身,提高开发效率;
- 让你的代码
更简炼
,易写
、易读
、易于维护
;
文档地址: http://feilong-core.mydoc.io/
maven 依赖配置:
<dependency>
<groupId>com.github.ifeilong</groupId>
<artifactId>feilong</artifactId>
<version>4.0.5</version>
</dependency>
Gradle 依赖配置:
com.github.ifeilong:feilong:4.0.5
本次升级共有 2
处变更, 具体参见 4.0.5 milestone
🎣 feilong-io
#639 ✨ FilenameUtil 新建 boolean isExtensionIgnoreCase(String filename,String...extensions)
判断是否是指定后缀的文件(忽视大小写) [enhancement]
🍖 feilong-json
#640 完善 json 转java 类型不匹配详细日志 java.lang.Integer" but expected signature "java.util.Date" [log]
4.0.4
feilong 4.0.4 发布了,让Java开发更简便的工具库
- 让你从大量重复的底层代码中脱身,提高开发效率;
- 让你的代码
更简炼
,易写
、易读
、易于维护
;
文档地址: http://feilong-core.mydoc.io/
maven 依赖配置:
<dependency>
<groupId>com.github.ifeilong</groupId>
<artifactId>feilong</artifactId>
<version>4.0.4</version>
</dependency>
Gradle 依赖配置:
com.github.ifeilong:feilong:4.0.4
本次升级共有 2
处变更, 具体参见 4.0.4 milestone
🍑 feilong-core
#637 ✨ loghelper 添加一个已经执行了多长时间 [enhancement]
效果
进度: [6/7] 85.71% ,perUseTimes: 2秒5毫秒 ,已经执行时间(elapsedTime): 13秒215毫秒 ,预估剩余时间(estimatedRemainingTime): 2秒5毫秒
🍖 feilong-json
#638 ✨ 新建 com.feilong.json.JsonUtil.toString(Object obj,boolean isIgnoreNullValueElement,String...ifIgnoreNullValueElementIncludes) 忽略空和空白, 但是有的属性要支持白名单,强行输出null [enhancement]
4.0.3
feilong 4.0.3 发布了,让Java开发更简便的工具库
- 让你从大量重复的底层代码中脱身,提高开发效率;
- 让你的代码
更简炼
,易写
、易读
、易于维护
;
文档地址: http://feilong-core.mydoc.io/
maven 依赖配置:
<dependency>
<groupId>com.github.ifeilong</groupId>
<artifactId>feilong</artifactId>
<version>4.0.3</version>
</dependency>
Gradle 依赖配置:
com.github.ifeilong:feilong:4.0.3
本次升级共有 12
处变更, 具体参见 4.0.3 milestone
🐛 bug
#626 log 动态参数 最后一个e 没有生效 [feilong-net-bot]
🍑 feilong-core
#624 ✨ 新建com.feilong.core.lang.ThreadUtil.execute(List, Map<String, ?>, PartitionPerHandler) [enhancement]
#635 PartitionEachSizeThreadConfigBuilder 新增javadoc [javadoc]
#636 ✨ 新建 com.feilong.core.lang.ThreadUtil.execute(List, PartitionPerHandler) [enhancement]
#630 ✨ 新建 com.feilong.core.net.URLUtil.transformHttpsToHttp(String) [enhancement]
#631 ✨ 新建 com.feilong.core.net.URLUtil.transformProtocol(String, String, String) [enhancement]
#627 ✨ 新建com.feilong.core.net.URLUtil.transformHttpToHttps(String) [enhancement]
#632 标识 PartitionEachSizeBuilder @FunctionalInterface
#633 标识 PartitionPerHandler @FunctionalInterface
#634 标识 PartitionRunnableBuilder @FunctionalInterface
🍷 feilong-net
#629 ✨ RequestByteArrayBody 支持字符串格式的MimeType [enhancement]
feilong-net-bot
#625 ✨ 新建个带签名类似于短信 [enhancement]
4.0.2
feilong 4.0.2 发布了,让Java开发更简便的工具库
- 让你从大量重复的底层代码中脱身,提高开发效率;
- 让你的代码
更简炼
,易写
、易读
、易于维护
;
文档地址: http://feilong-core.mydoc.io/
maven 依赖配置:
<dependency>
<groupId>com.github.ifeilong</groupId>
<artifactId>feilong</artifactId>
<version>4.0.2</version>
</dependency>
Gradle 依赖配置:
com.github.ifeilong:feilong:4.0.2
本次升级共有 7
处变更, 具体参见 4.0.2 milestone
🍖 feilong-json
#617 完善 com.feilong.json.JsonToJavaConfig.classMap javadoc [javadoc]
#618 ✨ 新建 LongToDateMorpher,支持json转bean 的时候 自动将时间戳long类型转成Date类型 ,比如 {'date':1609948800000}
可以自动转成Date类型 [enhancement]
⬆️ 依赖升级
#620 log4j2 依赖升级到 2.21.1
#623 maven-clean-plugin 升级到3.3.2
#621 maven-dependency-plugin 升级到 3.6.1
#622 maven-javadoc-plugin 升级到3.6.2
#619 springframework 依赖升级到5.3.30