亲宝软件园·资讯

展开

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的形式捕获注解处理,然后依旧是草(一种植物)!!!!

最终最终还是找到通往罗马的路了

加载全部内容

相关教程
猜你喜欢
用户评论