Skip to content

Releases: buession/buessionframework

v3.0.0

06 Nov 16:17
c191706
Compare
Choose a tag to compare

🔨依赖升级

⭐ 新特性

  • ClassUtils 新增检测类是否存在方法 isPresent
  • 新增 list 到 set 转换器 ListSetConverter
  • 新增 set 到 list 转换器 SetListConverter
  • 新增断言转换器 PredicateConverter
  • 新增 集合转换器 CollectionConverter
  • 新增 Map.Entry 到 Map 转换器 MapEntryMapConverter
  • httpClient Configuration 新增 expectContinueEnabled、hardCancellationEnabled、targetPreferredAuthSchemes、cookieSpec、proxy 配置
  • httpClient 新增代理支持
  • ApacheClient 新增支持 apache httpcomponents 5,根据依赖的 apache httpcomponents 5 和 apache httpcomponents 4 自动判断,优先使用 apache httpcomponents 5
  • 新增支持 Lettuce(stream 命令不稳定,不推荐使用)
  • jedis 模式下,集群支持管道
  • 新增代理方法调用者 ProxyMethodInvoker
  • 新增代理调用处理器 InvocationHandler 抽象类 AbstractInvocationHandler
  • PropertyMapper 增加正数断言 alwaysApplyingWhenPositiveNumber
  • com.buession.io.file.File 新增支持将 InputStream 写入文件
  • JSON 序列化和反序列化支持对原生对象进行配置
  • 增加范围类 Range 及其衍生类
  • 新增日期时间工具类 DateTimeUtils

🔔 变化

  • Maps.toList 参数为 LinkedHashMap 时返回 LinkedList
  • Lists.toSet 参数为 LinkedList 返回 LinkedHashSet
  • Sets.toList 参数为 LinkedHashSet 返回 LinkedList
  • core 包中删除依赖 commons-beanutils
  • 删除 ArrayUtils、StatusUtils、ObjectUtils、MapUtils、BuesssionFrameworkVersion
  • 删除 AbstractAspectAnnotationsMethodInterceptor
  • geoip 删除依赖 apache httpcomponents
  • 废弃 ApacheRequest、ApacheRequestBuilder、ApacheHttpClientBuilder
  • httpClient 优化 ConnectionManager 创建默认原生 ConnectionManager,以解决在创建原生 ConnectionManager 之前,更新了 Configuration 不生效的问题
  • ApacheHttpClient 删除 apache httpcomponents 4 中的特有方法
  • httpClient 参数为 URL 时,不再验证是否为 null
  • apache httpcomponents 异步请求时 HttpAsyncResponseConsumer 采用 ZeroCopyConsumer
  • okhttp maxRequestsPerHost 大于 0 时,才会更新 okhttp 原生 maxRequestsPerHost 的值
  • 删除 OkHttpClient
  • 重构 JDBC 连接池和数据源
  • MyBatisDao 废弃 masterTemplate、slaveSqlSessionTemplate,通过其它数据库本身或其它中间件实现读写分离
  • redis 删除参数为字符串数组或 byte[] 数组的方法 bitField
  • redis 废弃字符串型 / byte[]型 min、max 参数的方法
  • redis role 命令直接返回 Role,不再返回 List<Role>
  • redis 重构管道、事务内部实现
  • redis 哨兵连接,如果指定了连接超时、读取超时,但未指定哨兵节点连接超时、读取超时,哨兵节点连接超时、读取超时也使用该值
  • redis 连接池调整在连接对象中创建,不再在 DataSource 中创建
  • redis 不再推荐从 DataSource 中创建 RedisConnection 实例
  • IO MimeType 忽略大小写比较
  • 删除 com.buession.web.mvc.Response 中参数为 com.buession.core.Pagination 的构造函数和 setter 函数
  • 删除 buession-cron 和 buession-session
  • 删除 MobileFilter、PoweredByHeaderFilter
  • 序列化类删除反序列化方法

🐞 Bug 修复

  • httpClient 修复 ConnectionManager 未设置 connectionManagerShared 时,无法从 Configuration 中获取 connectionManagerShared 值的 BUG
  • 修复 okhttp 设置 followRedirects 时,followSslRedirects 未生效的 BUG
  • 修复 jedis 模式下 role 命令未返回数据的 BUG
  • 修复 jedis 模式下 API 中,“命令”参数设置错误的 BUG
  • 修复 jedis GeoRadiusResponseConverter coordinate 为 null 时,空指针异常
  • 修复 jedis 模式下连接中的错误和参数丢失等问题
  • 修复 Validate IPV4 验证,第一段为 10 ~ 99 时,验证失败的 BUG

⏪ 优化

  • 优化 redis 转换器,不使用静态属性,以减少内存占用
  • jedis 模式命令运算优化
  • 优化 JDBC 数据源连接池设置
  • 优化 httpclient 配置、连接管理器以及连接客户端
  • 优化默认线程池执行器 DefaultThreadPoolExecutor 初始化
  • com.buession.io.file.File 读取文件优化

📔 文档

  • 完善 redis 注释
  • 修正 httpclient 错误注释
  • 完善 httpclient 注释

v2.3.3

06 May 14:02
4c019f5
Compare
Choose a tag to compare

🔨依赖升级

⭐ 新特性

  • buession-core: 新增默认线程工厂 DefaultThreadFactory
  • buession-core: 新增默认线程池执行器 DefaultThreadPoolExecutor
  • buession-core: File 新增创建软链接方法
  • buession-core: PropertyMapper 新增 alwaysApplyingWhenNull 条件为 null 时,alwaysApplyingWhenNonText 条件为 null 或无字符串(不含空格、换行符、制表位)时

🔔 变化

  • buession-core: 废弃 ThreadPoolConfiguration name 属性
  • buession-core: 废弃 ThreadPoolConfiguration timeUnit 属性,使用 keepAliveTimeUnit 替代
  • buession-core: 废弃 ObjectUtils 使用 java 原生 API Optional
  • buession-core: 废弃 StatusUtils ,迁移至枚举 Status 本身

🐞 Bug 修复

  • buession-core: 修复 StringUtils 类忽略大小写判断是否以字符开头或结尾,错误判断的 BUG
  • buession-dao: 修复 MongoDBDao 处理 in、nin 条件值错误传递问题

⏪ 优化

  • buession-core: 优化数据验证,减少内存占用
  • buession-json: 数据脱敏,性能优化

v2.3.2

27 Dec 02:23
09bfe57
Compare
Choose a tag to compare

🔨依赖升级

⭐ 新特性

  • buession-core: ClassUtils、MethodUtils、FieldUtils 增加检测是否含义任意注解的方法
  • buession-core: AnnotationUtils 增加检测属性是否含义任意注解的方法
  • buession-core: 断言 Assert 可指定异常
  • buession-core: 新增对象工具类 ObjectUtils
  • buession-core: AbstractBeanConverter 新增支持 String 转枚举
  • buession-core: 新增反射工具类 ReflectionUtils
  • buession-aop: 新增注解处理器支持解析注解属性中的变量
  • buession-json: 注解 @sensitive 增加支持邮箱脱敏
  • buession-httpclient: OKHTTP client 增加可设置 maxRequests
  • buession-velocity: 新增验证工具 ValidateTool
  • buession-web: 新增注解处理器支持解析注解属性中的变量

🔔 变化

  • buession-core: 废弃 JsonSerializer 和 JsonDeserializer
  • buession-core: ListConverter、SetConverter、MapConverter 默认返回原始类型
  • buession-core: 移除 spring-beans 依赖
  • buession-json: 注解 @sensitive 内容替换策略,替换符可通过属性 replacement 设置

🐞 Bug 修复

  • buession-core: 修改错误的类名 BuesssionFrameworkVersion 为 BuessionFrameworkVersion
  • buession-beans: 修复 NumberPropertyConverter 字符串转换为数字时异常的 BUG
  • buession-beans: 修复 Map 转换为 bean 时字段为 null 值的 BUG
  • buession-beans: 修复 Map 转换为 bean 或 bean 转换为 map 时缓存导致的异常
  • buession-dao: 修复分页插件 PaginationInterceptor 当页码大于等于 2 时,无法返回数据的 BUG
  • buession-dao: 修复分页对象下一页值错误的 BUG
  • buession-git: 修复无法解析 git 信息时,空指针异常
  • buession-web: 修复分页对象下一页值错误的 BUG

⏪ 优化

  • buession-beans: 代码优化
  • buession-httpclient: 代码优化
  • buession-redis: 代码优化
  • buession-redis: 优化 RedisAccessor 多次调用 afterPropertiesSet 时,重复初始化 RedisConnectionFactory
  • buession-geoip: 优化 GeoIPResolverFactoryBean 多次调用 afterPropertiesSet 时,重复初始化 DatabaseResolver
  • buession-thesaurus: 优化 ThesaurusFactoryBean 多次调用 afterPropertiesSet 时,重复初始化 Parser
  • buession-velocity: 优化 VelocityEngineFactoryBean 多次调用 afterPropertiesSet 时,重复初始化 VelocityEngine

📔 文档

  • buession-aop: 完善注释
  • buession-httpclient: 完善注释
  • buession-redis: 完善注释
  • buession-velocity: 完善注释
  • buession-web: 完善注释

v2.3.1

17 Nov 02:10
662cee2
Compare
Choose a tag to compare

🔨依赖升级

⭐ 新特性

  • buession-beans: 新增 bean 转换器 BeanConverter , 支持 map、bean 互转
  • buession-core: 新增日期、时间格式化工具类 DateFormatUtils
  • buession-core: DateTime 新增日期时间对象、日历对象、时钟对象转换为时间戳方法
  • buession-core: 新增线程池饱和策略 ThreadPolicy
  • buession-dao: 新增实验性的 MyBatis 分页插件
  • buession-json: 注解 Sensitive 增加 strategyType 用于定义脱敏策略类,优先级高于 strategy

🐞 Bug 修复

  • buession-core: 修复 ClassUtils instantiate 方法初始化类时,参数长度错误判断异常
  • buession-core: 修复 MapBuilder 增加 putIfPresent 方法,值不为 null 时添加到 Map 中
  • buession-dao: 修复修改数据 BUG
  • buession-web: 修复获取客户端真实 IP 注解判断错误 BUG
  • buession-web: 修复 velocity JsonTool 为设置日期时间格式时,无法设置时区的 BUG

⏪ 优化

  • buession-httpclient: okhttp3 连接池关闭时驱逐连接资源

v2.3.0

15 Aug 06:58
1ec1213
Compare
Choose a tag to compare

🔨依赖升级

🔔 变化

  • buession-core: 废弃 com.buession.core.serializer.type.TypeReference 使用 com.buession.core.type.TypeReference【3.0.0 版本删除】
  • buession-core: 将序列化类,拆分成序列化和反序列化
  • buession-dao: 废弃 DefaultEnumTypeHandler 使用 mybatis 原生 EnumTypeHandler【3.0.0 版本删除】
  • buession-httpclient: 废弃 Request.setUrl(String url) 使用 Request.setUri(URI uri) 替代【3.0.0 版本删除】
  • buession-web: AbstractRestController 添加主键类型、数据传输对象类型、数据输出对象类型
  • buession-web: Response 的 Pagination 类型由 com.buession.core.Pagination 更改为 com.buession.web.mvc.Pagination 不再返回数据
  • buession-redis: 废弃 bitfield 通过可变参数传参

⭐ 新特性

  • buession-lang: 新增浏览器类型 BrowserType、设备类型 DeviceType、渲染引擎 RenderingEngine、版本 Version、浏览器 Browser、操作系统 OperatingSystem 定义
  • buession-lang: 新增重试配置 Retry
  • buession-aop: 增加 AfterReturningAdviceMethodInvocationAdapter、AfterThrowingAdviceMethodInvocationAdapter、AroundAdviceMethodInvocationAdapter
  • buession-core: 新增类型引用类 com.buession.core.type.TypeReference
  • buession-core: 新增配置器接口 Configurer
  • buession-core: 新增定制器接口 Customizer
  • buession-core: 新增线程池配置类 ThreadPoolConfiguration
  • buession-core: Arrays 新增元素重复填充方法
  • buession-core: StringUtils 新增截取左边指定个字符串
  • buession-core: DateTime 新增如果获取原生日期、时间对象方法
  • buession-dao: 删除数据时,支持指定删除条数
  • buession-httpclient: 新增实验性 HTTP 异步请求客户端
  • buession-httpclient: 请求方法支持传 URI
  • buession-httpclient: 支持为每次请求单独配置 readTimeout
  • buession-jdbc: DataSource 可设置驱动、JDBC URL、数据库用户名、数据库密码信息
  • buession-jdbc: 新增 javax.sql.DataSource 初始化回调接口 Callback
  • buession-redis: bitfield API 支持通过 BitFieldArgument 传参
  • buession-net: SslConfiguration 增加 sslContext 属性
  • buession-net: 新增 SSL 配置 SslConfigure

🐞 Bug 修复

  • buession-redis: 修复 Jedis StringCommands.SetArgument 设置过期时间戳,处理成过期时间的 BUG
  • buession-redis: 修复 Client 对象返回的 cmd 类型错误的 BUG
  • buession-jdbc: 修复 DataSource 未设置 PoolConfiguration 创建原生 DataSource 空指针 BUG
  • buession-httpclient: 修复 HttpClient request 方法,无法发送 report、proppatch 请求 BUG
  • buession-httpclient: 修复 OkHttpClientConnectionManager 中错误设置 IdleConnectionTime 的 BUG
  • buession-web: 修复 AbstractBasicRestController 无法调用重写 pageNotFound(final String uri) 方法 BUG
  • buession-web: 修复 ServerInfoFilter 通过 setHeaderName 方法设置响应头名称无效的 BUG
  • buession-web: 修复 ServerInfoFilter 通过构造函数设置响应头名称未进行有效性验证的 BUG
  • buession-web: 修复 ServletContentTypeAnnotationHandler、ServletResponseHeadersAnnotationHandler 空指针 BUG
  • buession-web: 修复 servlet 下 ExceptionResolver 处理异常时,响应流异常关闭的 BUG

⏪ 优化

  • buession-httpclient: 内部优化
  • 其它优化

v2.2.1

31 Mar 13:43
4e1d6e0
Compare
Choose a tag to compare

🔨依赖升级

🔔 变化

  • buession-web: Servlet AbstractHandlerExceptionResolver doResolve 方法支持接收 handler

⭐ 新特性

  • buession-web: 新增实验性 User-Agent 解析工具

v2.2.0

10 Mar 05:56
4e1d6e0
Compare
Choose a tag to compare

2.2.0 (2023-03-10)

🔨依赖升级

⭐ 新特性

  • buession-core: ListBuilder、MapBuilder、QueueBuilder、SetBuilder 增加可以直接传递 List、Map、Queue、Set 实例的 create 方法
  • buession-core: Assert isEmpty 和 notEmpty 增加基础类型数组判断
  • buession-core: StringUtils 增加 random 增加支持字符串
  • buession-geoip: 增加返回 autonomous system number、autonomous system organization
  • buession-geoip: 增加可支持设置 asn 库地址或流
  • buession-httpclient: 支持原生 RequestBody 子类转换
  • buession-web: 增加 web binder 转换器工厂 IgnoreCaseEnumConverterFactory 忽略大小写将字符串转换为枚举值
  • buession-web: 获取客户端真实 IP,增加标头 Client-IP 的支持

🔔 变化

  • buession-web: 废弃 web binder 转换器 CaseTypeConverter、DomainTLDConverter、DomainTLDTypeConverter、GenderConverter、IpTypeConverter、ISBNTypeConverter、OrderConverter、StatusConverter,统一使用 web binder 转换器工厂 IgnoreCaseEnumConverterFactory
  • buession-core: Executor、Resolve 增加异常支持

🐞 Bug 修复

  • buession-core: 修复 RandomDigitIdGenerator 最大值大于最小值时报错的问题
  • buession-httpclient: 修复 Response 返回错误的 statusCode 和 statusText
  • buession-dao: 修复 DefaultJsonTypeHandler 为 null 或空字符串反序列化出错的 BUG

⏪ 优化

  • 其它优化

v2.1.2

13 Nov 10:00
170b5ef
Compare
Choose a tag to compare

🔨依赖升级

⭐ 新特性

  • buession-core: ListBuilder、MapBuilder、QueueBuilder、SetBuilder 增加可以指定 initialCapacity 和 Collection / Map 的 create 方法

⏪ 优化

  • buession-http: 优化 Response,使 statusCode、statusText 与 statusLine 的值始终保持一致
  • buession-geoip: 优化国家和地区词典解析,GeoIPResolverFactory 支持从默认词典返回文件对象或流对象,以及支持从 classpath 家长词典文件
  • 其它优化

🐞 Bug 修复

  • buession-redis: 修复 jedis 单例模式、哨兵模式下,不使用连接池的情况下,未创建 jedis 实例的 BUG

📔 文档

  • buession-redis: 修正错误的注释

v2.1.1

18 Aug 04:34
38966cd
Compare
Choose a tag to compare

🔨依赖升级

⭐ 新特性

  • buession-core: DateTime 增加统计年、月天数

v2.1.0

07 Aug 12:51
f961660
Compare
Choose a tag to compare

⭐ 新特性

  • buession-core: 新增对象解析接口 Resolve
  • buession-core: PropertyMapper 增加 alwaysApplyingWhenHasText() 方法,用于判断源属性是否含有内容
  • buession-web: 注解 @RequestClientIp 增加支持返回 InetAddress
  • buession-web: 注解 @RequestClientIp 支持指定获取真实 IP 的请求头名称

🔔 变化

  • buession-aop: 调整 AnnotationResolver 及其实现泛型参数,由类泛型参数,调整为 getAnnotation 泛型
  • buession-aop: AnnotationHandler execute 方法不再返回值
  • buession-web: 优化注解 @RequestClientIp HandlerMethodArgumentResolver,继承 spring 原生 HandlerMethodArgumentResolver 实现抽象类
  • buession-web: 废弃 MobileFilter,根据需要直接使用 RequestUtils.isMobile(request) 判断
  • buession-web: 删除 AopUtils、MethodUtils,删除 servlet HttpServlet、webflux ServerHttp
  • buession-web: MethodInterceptor 的抽象类移至 buession-aop
  • buession-velocity: 配置属性 springMacro.resource.loader.class 替换为 resource.loader.springMacro.class,resource.loader 替换 resource.loaders

⏪ 优化

  • buession-aop: 优化注解处理程序
  • buession-web: 优化 servlet 注解处理

🐞 Bug 修复

  • buession-aop: 修复注解在 cglib 代理模式下,连接点重复执行的 BUG
  • buession-web: 修复 ReactiveContentTypeAnnotationMethodInterceptor 使用成了 servlet 模式下的 ContentTypeAnnotationMethodInterceptor 的 BUG