2016-04-06 1 views
1

は、私は、次のコンテキストコンフィギュレーションがあるとし使い方

+1

現在の設定では、「B」インスタンスがSpring管理Beanになりません。そのため、そのBeanに '@ PostConstruct'などのようなものが動作することを期待すれば、それはバネがそれを管理しないため失敗します。次にそれはあなたが今まで必要としていた 'B'の唯一のインスタンスになるか、あるいはあなたが複数の場所でそれを必要としていることを確信していますか? –

+0

'A'の中で' B'をインスタンス化してみませんか?あるいは、 'B'をbeanにして、' @ Autowired'の 'A'の中にフィールドを宣言することができます。 –

+0

@ m-deinum私は[ここ](http://docs.spring.io/spring-kafka/docs/1.0.0.BUILD-SNAPSHOT/reference/html/_reference.html#__kafkalistener_annotation)に気付きました。たとえば、メソッド 'consumerConfigs()'は '@ Bean'とマークされています...おそらく他の場所でも使われるはずです。 – Aliaxander

答えて

2

BがプランJavaクラス(Springアノテーションなし)の場合は現在の設定を使用できます。これはAクラスのプライベートメンバーです。

しかし、あなたはBクラスの外に豆をしなければならないよりも、@PostConstructや@PreDestroyなどの(Bクラス内)、スプリングによって管理される必要がある方法で、持っている場合:

@Bean 
public A a(B b) { 
    return new A(b); 
} 
@Bean 
public B b() { 
    return new B(); 
} 

このような例はあるが:シャットダウン

  • JDBCにクローズする
  • シャットダウン/クローズ執行にクローズする

    • リソース接続
    • など