Java 您能将Springbean注入到一个类中而不是直接注入spring容器中吗?
很抱歉,如果这个问题听起来含糊不清,但我会尝试增加一些清晰度 如果我有如下所示的班级协会Java 您能将Springbean注入到一个类中而不是直接注入spring容器中吗?,java,spring,Java,Spring,很抱歉,如果这个问题听起来含糊不清,但我会尝试增加一些清晰度 如果我有如下所示的班级协会 A -> B -> C -> D 类A是通过Springbean配置创建的,而B、C和D是在spring容器外部创建的,例如直接在代码中创建。如果我想将一个新bean连接到类D中,我可以在D中使用@Inject注释,然后在SpringBean配置中创建一个关联的@bean定义来创建a,或者因为B、C和D不是不能工作的SpringBean吗?我没有测试过,但您可能很幸运使用这个方法 Bea
A -> B -> C -> D
类A是通过Springbean配置创建的,而B、C和D是在spring容器外部创建的,例如直接在代码中创建。如果我想将一个新bean连接到类D中,我可以在D中使用@Inject注释,然后在SpringBean配置中创建一个关联的@bean定义来创建a,或者因为B、C和D不是不能工作的SpringBean吗?我没有测试过,但您可能很幸运使用这个方法
Bean factory可以从
ApplicationContext
访问,我并没有测试它,但您可能很幸运使用了这个方法
可以从
ApplicationContext
访问Bean工厂。您可以使用new B()创建对象代码>和依赖项由Spring
管理
假设A
实例由Spring
容器管理,而B
看起来像:
public class B {
@Autowire
private A a;
...
}
...
B b = new B();
...
如果要使用Spring
的@Autowire
在B
中插入依赖项:
- 用:
@可配置(dependencyCheck=true)注释类B
- 使用Java代理运行Java进程:
Java-javaagent:…
您可以使用new B()创建对象代码>和依赖项由Spring
管理
假设A
实例由Spring
容器管理,而B
看起来像:
public class B {
@Autowire
private A a;
...
}
...
B b = new B();
...
如果要使用Spring
的@Autowire
在B
中插入依赖项:
- 用:
@可配置(dependencyCheck=true)注释类B
- 使用Java代理运行Java进程:
Java-javaagent:…
不,它不起作用,您需要手动将其设置到对象D中。好的,所以要将SpringBean注入到类D中,我必须将B、C和D全部创建为SpringBean?@pranethrash您可能会错。是的,没错,但spring并没有默认地称之为。你需要手动操作。如果您只是使用new操作符在D中创建任何非spring对象,spring将无法理解这必须是自动连接的。只是“自动布线”不起作用。您需要显式调用autowireBeanFactory.autowireBean(yourNewBean);因此,自动布线是必要的processed@PraneethRameshOFc,但如果你手动创建对象并想对其执行注入。。。然后它将被手动执行。你不必向我解释轮子是如何转动的。如果它不工作,你需要手动将其设置到对象D中。好的,那么要将SpringBean注入到类D中,我必须将B、C和D全部创建为SpringBean?@Pranethrash你可能错了。是的,没错,但spring并没有默认地称之为。你需要手动操作。如果您只是使用new操作符在D中创建任何非spring对象,spring将无法理解这必须是自动连接的。只是“自动布线”不起作用。您需要显式调用autowireBeanFactory.autowireBean(yourNewBean);因此,自动布线是必要的processed@PraneethRameshOFc,但如果你手动创建对象并想对其执行注入。。。然后它将被手动执行。你不必向我解释轮子是如何转动的