Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 您能将Springbean注入到一个类中而不是直接注入spring容器中吗?_Java_Spring - Fatal编程技术网

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,但如果你手动创建对象并想对其执行注入。。。然后它将被手动执行。你不必向我解释轮子是如何转动的