2016-05-12 10 views
0

@Bean注釈は、アプリケーションコンテキストのBeanを作成するために使用され、内部にロジックを入れてオブジェクトを作成することができます。 しかし、このメソッドをコードのどこかで手動で呼び出せますか?作成されるBeanの参照は自動実行されません。 私はこのメソッドを呼び出すことができますが、それは良い方法ですか?私がこれを呼んでいるのであれば、クラスの依存関係を正しく設計していないのではないでしょうか?@Bean注釈付きメソッドの正しい使用

誰かがこれについて考えてもらえますか?

おかげで、

アマールは

+0

について読むことができます

ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); ctx.getBean("beanName"); 

あなたは、XMLやJavaの設定外のBeanを管理し、スプリングを作成する方法を求めていますか? –

+1

'@ Bean'アノテートされたメソッドを何か他のものから呼び出さないでください。' @Configuration'クラス... –

+0

@RC。はい、私はメソッドを呼び出すと言うことができます。その方法の中で、私はその豆が必要です、私はそこにこのメソッドを呼び出すことができますか? –

答えて

-1

@Bean注釈は春マネージドBeanを作成します。それを保持するには、@Autowiredを使用します。

オブジェクトにアクセスする必要がある場合は、オートワイヤできません。一般に、コードの再設計を検討する必要があります。

しかし、あなたが主張するのであれば、オブジェクトを手動で作成するか、アプリケーションコンテキストからプログラムで取得する必要があります。

このような何か作業をする必要があります:

ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); 
ctx.getBean("someName"); 
0

あなたは常に2つのオプションがあります。

  1. アノテーションベースの
  2. XMLベースの

もし何らかの理由ドンのためにあなた@Autowiredアノテーションを使用したい場合は、gあなたの手をctx.getBean()に置いてください。あなたはこのヒイラギ戦争here

関連する問題