使用自定义注释实现依赖注入

时间:2013-07-23 22:39:21

标签: java spring annotations

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

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

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

如果这是实现这一目标的正确方法,请告诉我。

1 个答案:

答案 0 :(得分:1)

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

例如:

在spring config 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;

  ...
}