2017-05-25 2 views
0

申し訳ありませんが、この質問があいまいに聞こえる場合は、私はいくつかの明快さを追加しようとします。スプリングコンテナに直接入れないクラスにスプリングビーンを注入できますか?

次のようなクラス関連がある場合は、クラスに

A -> B -> C -> D 

スプリングビーン構成を介して作成されるが、B、C & Dはコードに直接スプリング容器などの外部で作成されています。新しいBeanをクラスDに配線したいのであれば、Dで@Injectアノテーションを使用して、Aを作成するSpring Beanの設定で関連する@Bean定義を作成することができます。B、C & DはSpring Beanではありません。うまくいかない?

+0

は何それは文句を言わないので、クラスDへのSpring Beanを注入するために、私はすべてのように作成B、C&Dを持っていなければならないだろう、あなたは手動で[OK]を対象D. –

+0

にいることを設定する必要が動作しません春の豆? – Juckky

+0

@PraneethRameshあなたは間違っている可能性があります。 – Antoniossss

答えて

0

私がいることをテストしdidntのが、あなたはAutowireBeanCapableFactory#autowireメソッドを使用して幸運かもしれ

豆の工場は、あなたがnew B();を使用してオブジェクトを作成し、が注入Springを管理する依存関係を持つことができますApplicationContext

1

からアクセスすることができます。

AインスタンスがSpringコンテナによって管理されていると言う、とBがどのように見えることができます:あなたはSpring@Autowireを使用してBに依存性を注入する場合

public class B { 

    @Autowire 
    private A a; 
... 
} 

... 
B b = new B(); 
... 

  • 注釈クラスBと:@Configurable(dependencyCheck = true)
  • Javaエージェント:java -javaagent:<path to spring-agent-${spring.version}.jar> ...
関連する問題