gpt4 book ai didi

java - 嵌套 bean 的 Spring 依赖注入(inject)

转载 作者:行者123 更新时间:2023-12-01 18:37:57 28 4
gpt4 key购买 nike

我正在与 Spring 依赖注入(inject)和嵌套 bean 作斗争:有两个 bean,其中一个嵌套在另一个 bean 中。当检查外部 bean 时,我可以看到内部 bean 未注入(inject)。

主类:

public class Main {

public static void main(String[] args) {
AnnotationConfigApplicationContext ctx
= new AnnotationConfigApplicationContext("org.acme");

MyService myService = ctx.getBean(MyService.class);
// do something with myService
}
}

外层 bean :

@Component
public class MyService {

@Inject // javax.inject.Inject
private MyDao dao;

public MyService() {
System.out.println(dao);
}
}

内部bean:

@Component
public class MyDao {

public MyDao() {
System.out.println("dao is alive");
}
}

启动应用程序时没有错误,但我看到 MyService 的构造函数打印出 null 并且 dao is active。我在尝试使用 @Configuration 类时遇到了同样的问题。看起来外部 bean 依赖项不会被注入(inject)。

谢谢!

最佳答案

由于字段和方法参数是在构造函数调用后注入(inject)的,因此不能在构造函数中使用注入(inject)的成员变量。

reference

关于java - 嵌套 bean 的 Spring 依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21048462/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com