1

我正在研究一个核心java框架。我不想直接在类中创建实例,这就是我想使用依赖注入的原因。

我正在考虑在要实例化的字段上声明我的自定义注释。并具有一个回调函数,该函数将创建一个实例并将其注入该字段。

我曾尝试创建自定义注释。但看起来没有直接的方法可以在声明的注释上获得回调。所以,我试图扫描这些课程。但我最终遇到了这个问题 Java Scanning Class for Annotation using Google Reflections

请让我知道这是否是实现这一目标的正确方法。

4

1 回答 1

1

由于您的问题被标记为“Spring”,因此您可以使用 Spring Framework 的 bean 注释(@Component / @Service / @Repository / ...)、类路径扫描和 @Autowired。

例如:

在您的 spring 配置 xml 上设置类路径扫描:

<context:component-scan base-package="com.mycompany.myapp" />

创建要扫描的 bean。Spring 容器将使用默认构造函数自动创建此 bean 的单例实例:

@Repository
public class FooDAO {
  ...
}

使用 DI + 自动装配注入对上述 DAO 实例的引用

@Service
public class FooService {

  @Autowired private FooDAO fooDAO;

  ...
}
于 2013-07-23T22:51:34.173 回答