每次在类中使用特定注释时运行方法

时间:2012-03-05 05:58:47

标签: java annotations

假设我有一个带有几个字段的类,所有字段都标有自定义注释。在我的例子中它是@inject,因为它被用于依赖注入。每次在我的类中使用注释时,如何在单独的类中运行方法?换句话说,每次加载类时,注释都会运行一个方法,该方法将收集字段数据,然后设置字段。

我已经设置了整个系统来收集资源,但是当加载带有@inject批注的类时,我需要一些关于如何实际运行该代码的方向。这可以通过在执行数据收集的注释接口中定义某种方法来完成吗?

我最初的想法是使用自定义类加载器,但我不想在其他项目中使用此jar时设置类加载器。有没有办法在运行时以编程方式为特定类设置自定义类加载器?我已经做了很多运行前反射的东西,我已经知道需要用自定义加载器加载哪些类。它只是一个不知道的问题,或者甚至可以在代码中为类设置自定义加载器。

类加载器是否可以用于执行预填充字段等任务,或者我是否在错误的切线上运行?我只需要在这种类型的事情最常见的方式上做一点指导(在运行时预先填充类字段)。

2 个答案:

答案 0 :(得分:0)

我正在思考这个问题。在加载类之前,您实际上无法自动运行代码(除非它是servlet过滤器等)。在我的情况下,答案是基于已经拥有我需要的资源数据的特定类创建实例。与Google的Guice一样。

请参阅此问题以获取更多信息:How does Guice Populate Annotated Fields

答案 1 :(得分:-1)

您可以使用Google Guice或Spring Framework中的注射器。