2012-04-21 3 views
1

.xml設定から2.5より前のバージョンを抽出するにはどうすればよいですか? @Autowiredが私の兵器から取り除かれれば、私は本当に何をすべきかわからないので、私は気になります。@Autowiredを使用しないアプリケーションコンポーネントを取得する

私はいくつかのDAOの実装を使いたいと思います。

私は通常の書き込みサービス・クラスで:

@Autowired 
someDaoInterface generalDao; 

それから私は、一般的にどのように私はこの方法を使用する春2.0に設定から実装を抽出します

generalDao.someInterfaceMethod(someParam param); 

を呼びますか?

ちょうどそれはばかだと:new ApplicationContext(pathToXml)とし、.getBeanを使用するか、それ以外の方法がありますか?

設定ファイルからBeanを取り出すのはなぜですか? Spring MVCでは、Beanをアプリケーションコンテキストから取得することなく、どのようにロジックを実行できますか。

@Controllerハンドラがある場合は、サービスクラスのメソッドを呼び出す必要がありますか?だから、彼らは何とかコンテキストから取得する必要があり、唯一の方法は今まで@Autowiredを使用していますか?次に、前の例でDAOクラスで述べたようにServiceクラスを作成し、アプリケーションコンテキストから取得する必要があるため、サービスクラスのロジックを記述することができます。過去に人々はどうしたのでしょうか?

私は@Autowiredを自動的に配線するのが便利だからではなく、何かを取り出す唯一の手段だと思っています。

答えて

0

プロパティまたはコンストラクタパラメータを介して明示的にワイヤリングするオプションがあります。 (とにかくあなたのコンテナにあいまいさがあるとautowiredは動作しません)

もちろん、あなたのJavaコードでアプリケーションコンテキストとgetBean()を使うことはできますが、DIパターンに違反していて、 。 DIの目的は、ビジネスロジックと実装の詳細を切り離すことです。ビジネスロジックではなく、依存関係がどこから来るのかです。依存関係はまさにそこにあります。あなたにできる、あなたがこれを行った後

  • 春自体
  • コンフィギュレーション名

:ApplicationContext.getBeanを()あなたはこのパターンを壊し、およびへの依存関係を紹介している使用することにより

DIがあなたに提供しているすべてのアドバンテージを無効にしたので、DIと春の使用を中止してください。 (@AutowiredはまたSpringへの依存性を導入し、DIパターンに違反していることを意味します)

また、答えは:理想的な場合、すべて。 インポートなし、注釈なし - 共同エンティティのインターフェイスのみ。

関連する問題