如何将类的依赖注入到另一个类中,如果它们都位于不同的maven项目中。我不想使用导入语句,因为添加导入语句意味着我必须在pom.xml中添加依赖项,这将导致循环依赖问题。
因此,我需要使用@inject在运行时注入依赖项。
发布于 2016-03-07 08:05:36
导入只意味着您的配置文件(无论是xml还是带@Configuration注释的java类)都在类路径上。这和maven无关。Maven管理模块依赖项,spring管理类依赖项。
假设您有两个maven模块:
module A: my.project.artifact1
module B: my.project.artifact2模块A有一个bean bean1,需要注入到B模块中的bean中。
模块A有一个依赖项:
<dependency>
<groupId>my.project</groupId>
<artifactId>artifact2</artifactId>
</dependency>项目b有一些bean:
@Component
public class Bean2 {
@Inject
private Bean1 bean1;
}如果您使用组件扫描模块A和bean1是在您的类路径-没有问题。它将被注射到bean2。如果没有,则应该在XML中定义它:
<bean id="bean2" class="Bean2">
<propery name="bean1" ref="bean1"></property>
</bean>就这样。在B中不需要依赖A。
但是,您应该拥有的(在大多数情况下)是Bean1实现的接口,它驻留在模块A和B都依赖的第三个通用模块中。
https://stackoverflow.com/questions/35838810
复制相似问题