Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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 嵌套bean的Spring依赖注入_Java_Spring - Fatal编程技术网

Java 嵌套bean的Spring依赖注入

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");

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

主要类别:

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);
  }
}

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


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