クラス別に@Autowiredワイヤーはなぜですか? -- java フィールド と spring フィールド 関連 問題

Why @Autowired wires by class?












1
vote

問題

日本語

各Beanが名前を持つ場合、 メソッド、Bean名とXML Configには、名前でBeanが注入されているため、なぜJavaではなぜBeanを注入しています。 config @Autowired アノテーションは、クラス別に配線されていますか?

他の1つからの1つの構成に豆を注入する従来の方法は何ですか? Beanを名前で参照することはできません @Qualifier

更新

設定間の名前で自動改行する方法を見つけました。

最初のI Classで設定全体をオートワイヤル:

<事前> <コード> @Autowired MySeparateConfig mySeparateConfig;

その後、そのBeanからインスタンス化方法を呼び出すだけです。

<事前> <コード> @Bean MyDependentBean myDependentBean() { MyDependentBean ans = new MyDependentBean(); ans.setProperty( mySeparateConfig.myNamedBeanInDifferentConfig() ); return ans; }

設定は定義によって異なるクラスです。

英語

If each bean has name, and we have getBean() method, which receives bean name and in XML config we are also injecting beans by name, then why in Java config we are limited to @Autowired annotation which wires by class?

What is conventional way to inject beans into one configuration from another one? Is it possible to refer bean by name and not use @Qualifier?

UPDATE

I found a way to autowire by name between configurations.

First I autowire entire configuration by class:

@Autowired MySeparateConfig mySeparateConfig; 

Then I just call instantiation method from that bean:

@Bean MyDependentBean myDependentBean() {    MyDependentBean ans = new MyDependentBean();    ans.setProperty( mySeparateConfig.myNamedBeanInDifferentConfig() );    return ans; } 

Configs are of different classes by definition.

</div
     
         
         

回答リスト

1
 
vote

実際には、注釈で豆を射出する方法はいくつかあります。

このBean

を持っていることを考える <事前> <コード> <bean id="standardPasswordEncoder" class="org.springframework.security.crypto.password.StandardPasswordEncoder" />

およびJavaクラスでは、私が知る限り

を注入するために以下の方法を使用することができます。 <事前> <コード> @Autowired // by type StandardPasswordEncoder standardPasswordEncoder; @Autowired @Qualifier("standardPasswordEncoder") // by bean id StandardPasswordEncoder standardPasswordEncoder; javax.annotation.@Resource // by bean id StandardPasswordEncoder standardPasswordEncoder; javax.inject.@Inject // by type StandardPasswordEncoder standardPasswordEncoder;

またはSPEL

を使用する <事前> <コード> @Value(#{standardPasswordEncoder}) // by bean id StandardPasswordEncoder standardPasswordEncoder;

しかし、Spring Autowired Defaultがタイプ別の理由はわかりません。また、なぜ疑問に思います。 Typeによって自動改行するのは危険だと思います。これがあなたを助けることを願っています。

 

Actually, there are several ways to inject bean by annotation.

given that we have this bean

<bean id="standardPasswordEncoder" class="org.springframework.security.crypto.password.StandardPasswordEncoder" /> 

and in java class we can use following ways to inject it as far as I know

@Autowired  // by type StandardPasswordEncoder standardPasswordEncoder;  @Autowired @Qualifier("standardPasswordEncoder")  // by bean id StandardPasswordEncoder standardPasswordEncoder;  javax.annotation.@Resource  // by bean id StandardPasswordEncoder standardPasswordEncoder;  javax.inject.@Inject  // by type StandardPasswordEncoder standardPasswordEncoder; 

or use spEL

@Value(#{standardPasswordEncoder})  // by bean id StandardPasswordEncoder standardPasswordEncoder; 

However, I don't know the reason why spring autowired default is by type, either, and also wondering why. I think it's dangerous to autowire by type. Hope this would help you.

</div
 
 
 
 

関連する質問

0  スプリングウェブフローのフロー定義フォーマットは、非スプリングフレームワークのWebフローを外部化するのに適していると思いますか?  ( Do you think the spring webflow flow definition format would be suitable for ext ) 
スプリングウェブフローの概念 - 特にフロー定義がスプリングBeanコンテナ内のコンポーネントからの上位レベルのWebフローを要約する方法です。 フロー定義フォーマットは、Webフロー - ビュー、アクション、遷移、サブフロー、結果などで1つのニーズをすべて...

2  MVCとWebflowを組み合わせることは春ですか?  ( Is spring ever going to combine mvc and webflow ) 
私は過去に何度もどこかに春の将来の目標が春のMVCとウェブフローを組み合わせることを講演したと言いました... これはまだケースですか? 現時点では、WebFlowがMVCへの拡張として推奨されているため、まだかなり別のプロジェクトがあるようです。開発者とし...

8  openSessionInviewInterceptorでもLazyInitializationException  ( Lazyinitializationexception even though opensessioninviewinterceptor ) 
openSessionInviewInterceptorを使用していても、LazyInitializationExceptionに問題があります。私はそのトピックについて多くの投稿を読みました、そして私はそれに3つか4つの異なるアプローチを試しました。 最初...

0  春2.5のライフレイの春JSON問題  ( Spring json problem in liferay with spring 2 5 ) 
Spring 2.5を含むLiferay 5.1.2で行われたプロジェクトで、ライブラリSpring-JSON.1.3.1を使用しようとしています。 プロジェクトウェブサイトに続く命令、私は要求を私の中でヒットさせることができましたコントローラですが、JSO...

25  vaadinとSpring MVC統合  ( Vaadin and spring mvc integration ) 
vaadinフレームワークでSpring MVCを使用する可能性について考えています。それらをうまく遊ぶことの文書化された方法はありますか?また一緒に使うことをお勧めしますか?パフォーマンスに関する。私は専用のサーバー上でアプリを実行するつもりです。 私の...

1  Spring&Hibernate EJBイベント  ( Spring hibernate ejb events ) 
スプリングマネージEJB3休止リスナーを定義することは可能ですか? 私はこの定義を持っています persistence.xml : <事前> <コード> <properties> <property name="hibernate.ejb.inter...

0  HibernateSesupportと共にCurrentSessionContext / SpringsessionContextを使用する方法GetCurrentSession()への通話を傍受する  ( How to use currentsessioncontext springsessioncontext along with hibernatedaosup ) 
スプリングハイバネート統合のためにSpringでHibernateAoSupportを使用しています。私はすべてのgetCurrentSession呼び出しを傍受し、フィルタを有効にしてフィルタパラメータ値を設定する必要があります。 Hibernateは、C...

4  EclipseでAppFuseによって作成されたマルチモジュールSpringMVCアプリケーションを正しく設定する方法  ( How to properly setup a multi module springmvc application created by appfuse in ) 
私はEclipseでマルチモジュールSpringMvc Appfuseアプリケーションを設定しようとしていますが、私はEclipseでプロジェクトをインポートした後にEclipseのエラーがたくさん直面しているようです。このようなアプリケーションをEclips...

7  Webアプリケーション用のGlassFish V3 Prelude VS SpringSource DMサーバーの利点/短所は?  ( Advantages disadvantages of glassfish v3 prelude vs springsource dm server for w ) 
これらのAppServersは両方とも少なくとも部分的なOSGiベースです。 1つの(GlassFish)は明らかにJava EEであり、一方ではありません。今、私は新しいプロジェクトのためのプラットフォームを選ぶという段階にあり、自然な選択はGlassFis...

6  Spring Form TagLib Disabled属性は、実際に文字列に解決する必要がありますか?  ( Does spring form taglib disabled attribute really have to resolve to a string ) 
私は最近春の形のTaglibと遊んで、かなり邪魔な現象に出会った。 <事前> <コード> <form:select path="whatever" disabled="${true}"> は無効になっていない選択要素をレンダリングします。 <事前> <コー...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有