java - 使用自定义注释实现依赖注入(inject)

标签 java spring annotations

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

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

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

请告诉我这是否是实现此目标的正确方法。

最佳答案

由于您的问题被标记为“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 + Autowiring 注入(inject)对上述 DAO 实例的引用

@Service
public class FooService {

  @Autowired private FooDAO fooDAO;

  ...
}

关于java - 使用自定义注释实现依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17822229/

相关文章:

java - 将 JAR 从编译更改为提供时出现 Servlet 错误

java - 在 java if 语句中混合关系条件和 boolean 条件

java - Spring 数据保存与 saveAll 性能

ios - 删除注释数组中的重复项

java - 将 v1 插入 @Path 注解 (java 1.6)

java线程中断,线程为空

java - 数组列表、列表

spring - Firebase 信任库并设置 Spring 以接受来自 Firebase 的证书

java - 如何使用 Spring Security 保护我的 Spring Data Rest 端点?

javascript - 使用javascript、HTML5向视频中的特定帧添加注释、文本