Releases: opengoofy/crane4j
2.3.1 (2023-12-10)
2.3.0 (2023-10-18)
2.3.0 (2023-10-18)
这是一个正常迭代版本,主要修复了一些问题,并添加了少量新功能。
具体内容参见:Milestone。
Feature
- 支持直接通过
Crane4jGlobalConfiguration
获取OperateTemplate
; - 支持全量获取数量固定的数据源容器;
- 当目标对象的key值与数据源对象的key值类型不一致时,可以指定将目标对象的key值转为对应类型;
Fix
Refactor
Doc
2.2.0 (2023-09-25)
2.2.0 (2023-09-25)
这是一个正常迭代版本,主要修复了一些问题,并添加了少量新功能。
具体内容参见:Milestone。
Feature
- 为
PropertyOperator
提供基于方法句柄MethodHandler
的实现; - 支持
@AssembleMethod
注解,用于快速声明一个基于方法容器的装配操作; - 添加 jackson 插件,在序列化和反序列化过程中填充 json 数据;
- 枚举容器和方法容器支持设置重复的 key 值;
Fix
- 并发环境下获取容器可能导致类转换异常 “cn.crane4j.core.container.MethodInvokerContainer cannot be cast to cn.crane4j.core.container.ContainerDefinition”;
@Assemble
注解应当支持在类上声明,且支持重复声明;- AsyncBeanOperationExecutor 避免重复请求相同的数据源;
- 在不同类的同名方法上添加
@AutoOperate
后,会导致填充字段错乱; - 升级2.1.0版本后,警告“Unable to find property mapping strategy [], use default strategy [OverwriteNotNullMappingStrategy]”;
Refactor
2.1.1 (2023-09-19)
2.1.1 (2023-09-19)
这是一个问题修复版本,请及时升级。
Fix
2.1.0 (2023-08-21)
2.1.0 (2023-08-21)
这是一个正常迭代版本,相对上一版本,修复了一些问题,并调整了关于枚举和常量扫描相关的功能。
具体内容参见:Milestone。
Feature
Fix
Crane4jInitializer
启动顺序太靠后,导致在项目中ApplicationRunner
启动时容器仍然未加载;@AssembleEnum
在不指定enumKey
或者enumValue
时会空指针;- 在启动类添加
@EnableCrane4j
注解后,启动应用报错 “No ServletContext set”;
Refactor
Doc
2.0.0 (2023-08-06)
2.0.0 (2023-08-06)
这是 2.0.0
的正式版本,相对最近的一个正式版本 1.2.0
做了大幅度的重构,优化了很多旧功能,并且添加了较多新特性。
具体内容参见:[Milestone](https://github.com/opengoofy/crane4j/milestone/4)。
Feature
- 优化
@ContainerMethod
注解在类上的配置方式; - 添加一个全局的排序器静态单例,用于同时支持 Spring 的
@Order
与 Crane4j 的Sorted
接口; ConstantContainer
支持刷新缓存内容;- [代理填充方法支持设置临时容器](https://github.com/opengoofy/crane4j/issues/49);
- [提供一个默认的可配置容器注册者实现](https://github.com/opengoofy/crane4j/issues/41);
- [当在注解中不指定 key 属性时,允许将当前对象作为 key 值](https://github.com/opengoofy/crane4j/issues/100);
ReflectivePropertyOperator
在没有找到 setter 或者 getter 方法时,应当支持直接基于属性进行读写;- [支持“字典类型-字典项编码”模式的字典项填充](https://github.com/opengoofy/crane4j/issues/122);
Refactor
- [2.0 升级重构计划](https://github.com/opengoofy/crane4j/issues/86);
- [重构容器与装配操作配置的绑定过程](https://github.com/opengoofy/crane4j/issues/85);
- [重构全局配置类的容器管理功能](https://github.com/opengoofy/crane4j/issues/81);
- [装配操作可以指定数据源容器的加载策略](https://github.com/opengoofy/crane4j/issues/63);
- [配置解析器应当支持所有的AnnotatedElement类型对象的注解配置](https://github.com/opengoofy/crane4j/issues/45);
- 移除了
AbstractCacheablePropertyOperator
,缓存功能分离至独立的CacheablePropertyOperator
装饰器; - [在各个组件中由于参数/逻辑校验不通过而抛出异常时,异常需要更详细的信息](https://github.com/opengoofy/crane4j/issues/116);
- [一些关键操作通过 debug 级别的日志输出执行时间](https://github.com/opengoofy/crane4j/issues/107);
Fix
- 为基于
ConstantContainer
的枚举、常量容器提供独立的Builder
; - [启用全局切面后,springboot 项目启动报错](https://github.com/opengoofy/crane4j/issues/113);
- 在方法添加
@AutoOperate
后,若方法不指定填充对象类型,且返回值为空时报错; - spring环境下,
ContainerProvider
没有在启动后自动注册到Crane4jApplicationContext
中;
Doc
New Contributors
2.0.0-BATE (2023-07-30)
2.0.0-BATE (2023-07-30)
这是 2.0.0
的第二个预览版本,在上一版本的基础上修复了一些 bug,并添加了一些新功能。
具体内容参见:[Milestone](https://github.com/opengoofy/crane4j/milestone/4)。
Fix
- 为基于
ConstantContainer
的枚举、常量容器提供独立的Builder
; - [启用全局切面后,springboot 项目启动报错](https://github.com/opengoofy/crane4j/issues/113);
- 在方法添加
@AutoOperate
后,若方法不指定填充对象类型,且返回值为空时报错;
Refactor
- [在各个组件中由于参数/逻辑校验不通过而抛出异常时,异常需要更详细的信息](https://github.com/opengoofy/crane4j/issues/116);
- [一些关键操作通过 debug 级别的日志输出执行时间](https://github.com/opengoofy/crane4j/issues/107);
Feat
2.0.0-ALPHA (2023-07-08)
2.0.0-ALPHA (2023-07-08)
这 2.0.0
的预览版本,基于 1.3.0-ALPHA
升级而来。
项目进行了一次范围较大的重构,优化了大量的代码与逻辑,部分 API 可能不向下兼容。
具体内容参见:[Milestone](https://github.com/opengoofy/crane4j/milestone/4)。
Feature
- 优化
@ContainerMethod
注解在类上的配置方式; - 添加一个全局的排序器静态单例,用于同时支持 Spring 的
@Order
与 Crane4j 的Sorted
接口; ConstantContainer
支持刷新缓存内容;- [代理填充方法支持设置临时容器](https://github.com/opengoofy/crane4j/issues/49);
- [提供一个默认的可配置容器注册者实现](https://github.com/opengoofy/crane4j/issues/41);
Refactor
- [2.0 升级重构计划](https://github.com/opengoofy/crane4j/issues/86);
- [重构容器与装配操作配置的绑定过程](https://github.com/opengoofy/crane4j/issues/85);
- [重构全局配置类的容器管理功能](https://github.com/opengoofy/crane4j/issues/81);
- [装配操作可以指定数据源容器的加载策略](https://github.com/opengoofy/crane4j/issues/63);
- [配置解析器应当支持所有的AnnotatedElement类型对象的注解配置](https://github.com/opengoofy/crane4j/issues/45);
- 移除了
AbstractCacheablePropertyOperator
,缓存功能分离至独立的CacheablePropertyOperator
装饰器;
Doc
1.3.0-ALPHA (2023-05-10)
1.3.0-ALPHA (2023-05-10)
这 1.3.0
的预览版本,重构和增强了一些已有功能,并添加了一些新的功能。
其中,基于新特性添加基于接口代理的填充方法,crane4j 将更好的支持处理 JSONObject
或 Map
类型的非 JavaBean
对象。
具体内容参见:Milestone。
Feature
- 提供
@AssembleEnum
注解,对枚举类型数据源提供更好的支持; - 提供一个不基于 ThreadLocal 的动态数据源容器提供者;
- 代理填充方法支持设置临时容器;
- OperatorProxyFactory中代理方法的生成也应当支持多种策略;
- 支持通过 Spring 依赖注入获取被
@Operator
注解的接口的代理对象; - 装配操作中的容器支持懒加载;
- 添加基于接口代理的填充方法;
- 提供一个默认的可配置容器注册者实现;
Refactor
Test
- 提高测试覆盖率;
- MybatisPlus相关扩展的测试用例数据库更换为H2;
- 修复了引入
crane4j-spring-boot-starter
时的一些自动装配问题;
Doc
1.2.0 (2023-04-09)
1.2.0 (2023-04-09)
这一个重构版本,增强了一些新功能,并且调整了 MybatisPlus 扩展的引入方式,如果已经使用了 MybatisPlus 插件,则需要按文档重新引入。
具体内容参见:Milestone。
Feature
- 支持直接填充 Map 类型的数据;
- 提供
@AssembleMp
注解,为基于 MP 的数据源提供更好的支持; - 允许自定义注解,支持解析自定义的配置规则;
- MpBaseMapperContainerRegister支持懒加载;
Refactor
Fix