java 注解翻译字典
愿君多采撷_ 人气:0最近在写代码时遇到一个需要将entity字段通过字典翻译成真实值的场景,原来的做法是通过主表字段和字典表关联的形式,当一个需要大量翻译的场景时,大量的关联会造成sql阅读的不友好,所以就在想有什么可以偷懒的方法。。。
首先一个想法就是通过注解,实例化entity时就可以同步翻译了。
先自定义注解
@Target({ElementType.FIELD,ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface DictCovert { /** * 字典key * @return */ String key() default ""; /** * 是否使用redis * @return */ boolean redis() default false; }
然后在需要转换的entity属性上加上注解和该属性的key
/** * 性别 */ @DictCovert(key = "gender",redis = true) private Integer gender;
有了注解,首先想到的就是通过AOP去切该注解@Pointcut("@annotation(*.*.*.DictCovert)"),捕获到切点时同步处理数据就行
赶紧写好代码运行,发现没有如愿以偿,因为我们自定义的注解加在了entity上,但是entity并没有交给spring管理,所以切点根本没有奏效,草(一种植物)!!。。。。。
于是又想到了通过自定义MessageConverter的形式捕获注解处理,然后依旧是草(一种植物)!!!!
最终最终还是找到通往罗马的路了
加载全部内容