Java自定义注释和动态数据库内容

时间:2017-01-31 07:27:47

标签: java

我正在尝试实现自定义Java注释: 到目前为止写了以下内容:

@Target({ElementType.FIELD,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MappedField{

    boolean isValueRequired() default false;
}

我的要求是,如果类的属性/方法是 isValueRequired = true ,那么它应该从数据库获取此属性的映射值:

例如在我的数据库中,Salutations对于MR为01,对于MRS为02,等等。

当启用此注释时,我希望自动从db:

获取属性值

从其他问题我得到提示我需要稍后解析注释:

 public static void performAnnotationScanOnClass(Class<?> clazz) {
        Field[] fields = clazz.getDeclaredFields();

        for ( Field field : fields ) {

             Annotation[] annotations = field.getAnnotations();
             for (Annotation annotation : annotations) {

                 if ( annotation instanceof MappedField) {
                     MappedField mappedField= (MappedField) annotation;

//                     if ( field.get( ... ) == null )
//                         field.set( ... , value)
                 }

但我的观点是我需要编写此代码来解析注释。 任何帮助都将受到高度赞赏。

由于

1 个答案:

答案 0 :(得分:2)

一个合适的地方。例如,您可以拥有一个工厂来创建实例并填充数据库中的值。然后你只需要小心通过工厂创建所有实例(或者你不需要,但是你必须意识到注释也不会被处理)。