Java 使用自定义注释实现依赖项注入
我正在开发一个核心java框架。我不想直接在类内部创建实例,这就是我想使用依赖项注入的原因 我正在考虑在要实例化的字段上声明自定义注释。还有一个回调函数,它将创建一个实例并将其注入到字段中 我试图创建一个自定义注释。但是看起来没有直接的方法可以获得声明注释的回调。所以,我试着在课堂上浏览。但我最终遇到了这个问题Java 使用自定义注释实现依赖项注入,java,spring,annotations,Java,Spring,Annotations,我正在开发一个核心java框架。我不想直接在类内部创建实例,这就是我想使用依赖项注入的原因 我正在考虑在要实例化的字段上声明自定义注释。还有一个回调函数,它将创建一个实例并将其注入到字段中 我试图创建一个自定义注释。但是看起来没有直接的方法可以获得声明注释的回调。所以,我试着在课堂上浏览。但我最终遇到了这个问题 请告诉我这是否是实现这一目标的正确方法。因为您的问题被标记为“Spring”,所以您可以使用Spring框架的bean注释(@Component/@Service/@Repositor
请告诉我这是否是实现这一目标的正确方法。因为您的问题被标记为“Spring”,所以您可以使用Spring框架的bean注释(@Component/@Service/@Repository/…)、类路径扫描和@Autowired 例如: 在spring配置xml上设置类路径扫描:
<context:component-scan base-package="com.mycompany.myapp" />
使用DI+自动连接将引用注入上述DAO实例
@Service
public class FooService {
@Autowired private FooDAO fooDAO;
...
}
那么谁来处理注释、创建和注入对象呢?我想知道我是否可以有回调方法来创建和注入带注释的字段。我对自定义注释没有太多经验,但我认为你无法获得注释的回调方法。一种选择是使用
AspectJ
,这样您就可以对这些类进行注释,并在一个方面发挥神奇的作用。所以,如果我尝试在我的框架中安装spring依赖项,那么将它导出到jar文件不会导致问题吗?如果您使用像Maven这样的依赖项管理工具,则不会。你可以声明你的项目需要什么依赖项,拉动项目将过渡地拉动所有这些依赖项。我通过创建一个spring项目并将其导入一个非maven项目(我的项目需求之一)来尝试一下。而且它似乎在起作用。看起来jar是自包含的,包含所有依赖项。但当我检查罐子大小时,它只有几kb!对此有合理的解释吗?
@Service
public class FooService {
@Autowired private FooDAO fooDAO;
...
}