Java 使用@inject注释

Java 使用@inject注释,java,dependency-injection,Java,Dependency Injection,如果一个类和另一个类都在不同的maven项目中,如何将它们的依赖关系注入到另一个类中。 我不想使用import语句,因为添加import语句意味着必须在pom.xml中添加依赖项,这会导致循环依赖项问题 因此,我需要使用@inject注入依赖项ay运行时。导入仅意味着您的配置文件(无论是xml配置还是@configuration注释的java类)位于类路径上。这与maven无关。Maven管理模块依赖关系,而spring管理类依赖关系 假设您有2个maven模块: module A: my.pr

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


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

导入仅意味着您的配置文件(无论是xml配置还是
@configuration
注释的java类)位于类路径上。这与maven无关。Maven管理模块依赖关系,而spring管理类依赖关系

假设您有2个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>
如果您在模块A中使用组件扫描,并且
bean1
在您的类路径中-没有问题。它将被注入
bean2
。如果没有,则应在XML中定义它:

<bean id="bean2" class="Bean2">
   <propery name="bean1" ref="bean1"></property>
</bean>

就这样。无需依赖
A
中的
B


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

将尝试这样做..谢谢:)@saxenka-我在代码示例中编写了
@Autowired
,但我的意思是
@Inject
(他们都做同样的事情,但是你问了
@Inject
)。我现在编辑了答案。
<bean id="bean2" class="Bean2">
   <propery name="bean1" ref="bean1"></property>
</bean>