1

私はオブジェクトAを持っています

@Component("a")
Class A{
   public SomeObject getC(){
       return anObject;
   }
}

そのように別のオブジェクトBの構築に使用したい

@Service("b")
Class B{
   @Autowired
   @Qualifier("a")
   A a;

   SomeObject c;

   public B(){

      c = a.getC();
   }

a はデータベースへのコネクタです。基本的に、初期化時にデータベースからオブジェクト c をロードし、その後でもデータベースの更新を取得できるようにしたいと考えています。問題は、これを実行しようとしたところ、次の初期化エラーが発生したことです。

 org.springframework.beans.factory.BeanCreationException: Error creating bean with name  defined in file
 Instantiation of bean failed;
 Could not instantiate bean class
 Constructor threw exception; nested exception is java.lang.NullPointerException

オブジェクト B が構築される前に依存関係を注入する必要があるため、これは可能ですか、またはどうすればよいですか?

4

2 に答える 2

1

Bean が最初に作成され、次にその依存関係が注入されるため、NullPointerException が発生します。これを試して:

@Service("b")
Class B{

    A a;

    SomeObject c;

    @Autowired
    @Qualifier("a")
    public B(A a){
        this.a = a;
        c = a.getC();
    }
}
于 2013-08-01T23:04:39.697 に答える