获取应用注释的类

时间:2014-07-29 07:48:37

标签: java spring model-view-controller web annotations

我正在构建一个自定义注释,其中有一个Class类型的字段。如何在使用注释时在其中设置值? 代码如下:

    @Retention(RetentionPolicy.RUNTIME)
    @Target(ElementType.TYPE)
    public @interface SpringCache {
        String putIt();
        String getIt();
        Class c();
    }

这是我的自定义注释。现在,当我使用它时,如何将类赋予变量“c”?

    @SpringCache(putIt="I'm put", getIt="I'm get", c=<??>)
    public class TestSpringCache {
        public static void main(String[] args) {
                System.out.println();
        }
    }

在这种情况下,我想要c = TestSpringCache.class。

3 个答案:

答案 0 :(得分:2)

你只需写下你想要的课程:

@SpringCache(putIt="I'm put", getIt="I'm get", c=TestSpringCache.class)
public class TestSpringCache {
    public static void main(String[] args) {
            System.out.println();
    }
}

如果它不在同一个包中,您可能需要添加一个import语句。

答案 1 :(得分:1)

您必须从ApplicationContext(您可以注入它)ctx.getBean()中获取所有类实例。在那里,您可以检查是否存在注释。

答案 2 :(得分:0)

实际上我没有找到解决方法。正如许多人所说,这似乎是不可能的。虽然我已经找到了解决这个问题的工作。

我删除了类类型并且只保留了String和Boolean类型变量,并且为了获取带注释的类,我从用户获取了包含具有已定义注释的类的包的路径。然后对于包中的每个类,我检查了注释。如果注释存在,我做了我想要的,否则什么也没做。

感谢大家为你付出时间。