Createsequence

Results 37 issues of Createsequence

考虑到 “字典类型-字典项编码” 这种二级字典确实非常常见,因此 crane4j 考虑提供一个为此提供支持。 比如,新增一个 `@AssembleDict` 注解,其用于支持此类数据填充操作:: 首先,它允许通过固定的 category 和 type 查询指定范围内的字典值,此时其模式与 `@Assemble` 提供的 containerProvider + container 模式类似: ~~~java public class Foo { @AssembleDict( category = ”order_status“, // 固定查询...

enhancement
worth trying

基于 #119 ,我们应当基于 `Container` 接口提供一个新的子接口 `LimitedContainer`,它用于表示一个仅包含了固定的、有限个数数据源对象的容器。 针对该类型的容器,我们可以提供一个自动生成镜像的功能,即自动为其创建一个 key-value 翻转的版本,就像 Guava 中的 BiMap 那样。比如: ~~~java // 原始容器 Map origin = new HashMap(); origin.put("one", "1"); origin.put("two", "2"); origin.put("three", "3"); LimitedContainer contanier =...

enhancement

添加基准测试,并在文档中添加相关性能测试结果。 如果可以的话,在测试的过程中,一并寻找可能存在的性能瓶颈以便后续优化。

documentation

目前的操作条件机制只支持具体到每次填充的每个对象,实际上对于一些操作,比如 `@ConditionOnContainer` 这种条件,实际上在配置解析的阶段就已经可以确定结果了,没必要每次填充的时候都要调用。 鉴于此,希望操作的触发条件可以指定生效的作用域,比如: - 解析阶段:即配置解析阶段,在这个阶段生效的条件可以直接决定 Opeartion 是否要配置到 BeanOpeartions 中; - 执行阶段:即操作执行器的执行阶段,在这个阶段生效的条件可以决定 Opeation 是否可以在本地执行中被处理; - 操作阶段:即操作处理器真正按照 Opeartion 对对象进行处理的阶段,在这个阶段生效的条件可以决定某个 Operation 是否可以对某个对象生效; 此外,需要考虑条件是否应当允许同时可以在多个阶段生效。

enhancement
refactor

支持以 SPI 方式接入用户自定义组件。 考虑到大部分情况下 crane4j 都会在 Spring 环境下使用,因此此部分内容需要避免对 Spring 已有的 SPI 与配置类机制造成影响。 要锦上添花,不要画蛇添足。

enhancement

参见:https://juejin.cn/post/7322733301669216271?utm_source=gold_browser_extension

enhancement

支持配置基于 RPC 请求的数据源容器。具体来说,我们可以通过 SpringMVC 暴露一个 Controller 接口,比如: ~~~java @RestController @RequestMapping("/${path}") public Crane4jRpcController { @PostMapping public Result queryFromContainer(@RequestBody Crane4jRequest req) { // return datas } } @Data public class Crane4jRequest {...

enhancement

支持基于 MapStruct 的属性映射。 第一种思路,是类似 MapStructPlus 那样,实现自己的注解处理器,以便在编译器直接根据 crane4j 中 `@Assemble` 注解的 `prop` 属性、或者 `@MappingTemplate` 注解去预先的生成 `Mapper`。 第二种思路,是参照目前适配 `reflectasm` 的思路,提供一个基于` MapStruct` 实现的 `PropertyOperator`,不过介于 `MapStruct` 本身在编译期就生成了转换器,所以这个思路理论上可行性较低。

enhancement
worth trying
secondary