首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用@inject注释

使用@inject注释
EN

Stack Overflow用户
提问于 2016-03-07 08:00:52
回答 1查看 4.6K关注 0票数 1

如何将类的依赖注入到另一个类中,如果它们都位于不同的maven项目中。我不想使用导入语句,因为添加导入语句意味着我必须在pom.xml中添加依赖项,这将导致循环依赖问题。

因此,我需要使用@inject在运行时注入依赖项。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-07 08:05:36

导入只意味着您的配置文件(无论是xml还是带@Configuration注释的java类)都在类路径上。这和maven无关。Maven管理模块依赖项,spring管理类依赖项。

假设您有两个maven模块:

代码语言:javascript
复制
module A: my.project.artifact1
module B: my.project.artifact2

模块A有一个bean bean1,需要注入到B模块中的bean中。

模块A有一个依赖项:

代码语言:javascript
复制
<dependency>
   <groupId>my.project</groupId>
   <artifactId>artifact2</artifactId>
</dependency>

项目b有一些bean:

代码语言:javascript
复制
@Component
public class Bean2 {
   @Inject
   private Bean1 bean1;
}

如果您使用组件扫描模块A和bean1是在您的类路径-没有问题。它将被注射到bean2。如果没有,则应该在XML中定义它:

代码语言:javascript
复制
<bean id="bean2" class="Bean2">
   <propery name="bean1" ref="bean1"></property>
</bean>

就这样。在B中不需要依赖A

但是,您应该拥有的(在大多数情况下)是Bean1实现的接口,它驻留在模块A和B都依赖的第三个通用模块中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35838810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档