Java 嵌套bean的Spring依赖注入
我正在与Spring依赖注入和嵌套bean作斗争:有两个bean,其中一个嵌套在另一个bean中。当检查外部bean时,我可以看到,内部bean没有被注入 主要类别:Java 嵌套bean的Spring依赖注入,java,spring,Java,Spring,我正在与Spring依赖注入和嵌套bean作斗争:有两个bean,其中一个嵌套在另一个bean中。当检查外部bean时,我可以看到,内部bean没有被注入 主要类别: public class Main { public static void main(String[] args) { AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext("org.acme");
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处于活动状态
。我在尝试使用@Configuration
类时遇到了同样的问题。看起来外部的豆子依赖性不会被注射
谢谢 我让它与构造函数注入一起工作
@Component
public class MyService {
private MyDao dao;
@Inject // javax.inject.Inject
public MyService(MyDao dao) {
System.out.println(dao);
}
}
我让它与构造函数注入一起工作
@Component
public class MyService {
private MyDao dao;
@Inject // javax.inject.Inject
public MyService(MyDao dao) {
System.out.println(dao);
}
}
由于字段和方法参数是在调用构造函数后注入的,因此不能在构造函数中使用注入的成员变量
由于字段和方法参数是在调用构造函数后注入的,因此不能在构造函数中使用注入的成员变量