タグ付けされた質問 「autowired」

自動配線は、いくつかの基準に従って依存関係が自動的に検索されるDIコンテナー機能です。

10
Spring Frameworkの@Injectと@Autowiredの違いは何ですか?どの条件の下でどちらを使用しますか?
私はSpringSourceのいくつかのブログを調べています。そのうちの1つのブログでは、著者が使用して@Injectおり、彼もを使用できると思います@Autowired。 これがコードの一部です: @Inject private CustomerOrderService customerOrderService; 私は違いではないと確信している@Injectと@Autowired、誰かがその違いを説明している場合、それを感謝し、どちらがどのような状況の下で使用しますか?

18
Springの@Autowiredフィールドがnullになるのはなぜですか?
注:これは、一般的な問題に対する標準的な回答となることを目的としています。 フィールド@Service(MileageFeeCalculator)を持つSpring クラス()があり@AutowiredますrateServiceが、フィールドはnull使用しようとしたときのものです。ログには、MileageFeeCalculatorBeanとMileageRateServiceBeanの両方が作成されていることが示されていますが、サービスBeanでメソッドNullPointerExceptionを呼び出そうとすると、常にを取得しmileageChargeます。Springがフィールドを自動配線しないのはなぜですか? コントローラクラス: @Controller public class MileageFeeController { @RequestMapping("/mileage/{miles}") @ResponseBody public float mileageFee(@PathVariable int miles) { MileageFeeCalculator calc = new MileageFeeCalculator(); return calc.mileageCharge(miles); } } サービスクラス: @Service public class MileageFeeCalculator { @Autowired private MileageRateService rateService; // <--- should be autowired, is null public float mileageCharge(final int miles) { return …

11
Springでは自動配線はどのように機能しますか?
コントロール(IoC)の反転がでどのように機能するかについて、少し混乱していますSpring。 インターフェースUserServiceImplを実装するサービスクラスが呼び出されたとしUserServiceます。 これはどうでしょう@Autowired? そして、私の中にControllers、どのようになり、私はこのサービスの?instantiateinstance 次のようにすればよいですか? UserService userService = new UserServiceImpl();

14
Spring:@Componentと@Bean
@Componentクラスパススキャンを使用してXML Bean定義を取り除くために、Spring 2.5でアノテーションが導入されたことを理解しています。 @BeanはSpring 3.0で導入され@Configuration、xmlファイルを完全に削除し、代わりにjava configを使用するために使用できます。 @Componentアノテーションを導入する代わりにアノテーションを再利用することは可能@Beanでしたか?私の理解では、最終的な目標はどちらの場合もBeanを作成することです。

11
@Resourceと@Autowired
@Resource(jsr250)または@Autowired(Spring固有)のどのアノテーションをDIで使用する必要がありますか? 私は過去に両方をうまく使用したことが@Resource(name="blah")あり、@Autowired @Qualifier("blah") @Resourcejsrの人々によって承認されているので、私の本能はタグを守ることです。 誰もがこれについて強い考えを持っていますか?

3
Spring @Autowiredの使用法を理解する
Spring Autowiredアノテーションを理解するために、Spring 3.0.xリファレンスドキュメントを読んでいます。 3.9.2 @Autowiredおよび@Inject 以下の例が理解できません。それを機能させるために、XMLで何かをする必要がありますか? 例1 public class SimpleMovieLister { private MovieFinder movieFinder; @Autowired public void setMovieFinder(MovieFinder movieFinder) { this.movieFinder = movieFinder; } // ... } 例2 public class MovieRecommender { private MovieCatalog movieCatalog; private CustomerPreferenceDao customerPreferenceDao; @Autowired public void prepare(MovieCatalog movieCatalog, CustomerPreferenceDao customerPreferenceDao) { this.movieCatalog = movieCatalog; this.customerPreferenceDao …

9
Spring @Autowiredの使用
Springによってワイヤリングされるクラスで@Autowiredを使用することの長所と短所は何ですか? 明確にするために、私は特に@Autowiredアノテーションについて話しているのであって、XMLでの自動配線については話していません。 おそらく私はそれを理解していないだけですが、私にはそれはほとんどアンチパターンのように見えます-クラスは、POJOであるだけでなく、DIフレームワークに関連付けられていることに気づき始めます。たぶん私は罰の大食いですが、私はBeanの外部XML設定が好きで、明示的な配線をしたいので、どこに何が配線されているかを正確に把握しています。
218 java  spring  autowired 

5
同じインターフェースを実装する2つのBeanの自動配線-デフォルトのBeanを自動配線に設定する方法
バックグラウンド: Spring 2.5 / Java / Tomcatアプリケーションがあります。アプリケーション全体で多くの場所で使用されている次のBeanがあります public class HibernateDeviceDao implements DeviceDao そして次の新しいBean: public class JdbcDeviceDao implements DeviceDao 最初のBeanはそのように構成されています(パッケージ内のすべてのBeanが含まれています) <context:component-scan base-package="com.initech.service.dao.hibernate" /> 2番目の(新しい)Beanは個別に構成されます <bean id="jdbcDeviceDao" class="com.initech.service.dao.jdbc.JdbcDeviceDao"> <property name="dataSource" ref="jdbcDataSource"> </bean> これにより、(もちろん)サーバーの起動時に例外が発生します。 ネストされた例外はorg.springframework.beans.factory.NoSuchBeanDefinitionException:タイプ[com.sevenp.mobile.samplemgmt.service.dao.DeviceDao]の一意のBeanが定義されていません:一致する単一のBeanが予期されていますが、2:[deviceDao、jdbcDeviceDao]が見つかりました このように豆を自動配線しようとするクラスから @Autowired private DeviceDao hibernateDevicDao; 同じインターフェースを実装する2つのBeanがあるためです。 質問: ように豆を構成することは可能ですか 1.既にHibernateDeviceDao自動配線されている既存のクラスを変更する必要はありません 2.次のように、2番目の(新しい)Beanを引き続き使用できます。 @Autowired @Qualifier("jdbcDeviceDao") HibernateDeviceDaoつまり、自動ワイヤリングされるデフォルトのBeanとしてBean を構成する方法が必要です。同時にJdbcDeviceDao、@Qualifierアノテーションで明示的に指定するときに、の使用を許可します。 私がすでに試したこと: プロパティを設定してみた autowire-candidate="false" JdbcDeviceDaoのBean構成: …


4
フィールドインジェクションとは正確には何であり、それを回避する方法は?
フィールドインジェクションは推奨されないというSpring MVCおよびポートレットに関するいくつかの投稿を読みました。私が理解しているように、フィールドインジェクションとは、次の@AutowiredようなBeanをインジェクトすることです。 @Component public class MyComponent { @Autowired private Cart cart; } 私の研究中に、コンストラクター注入についても読みました: @Component public class MyComponent { private final Cart cart; @Autowired public MyComponent(Cart cart){ this.cart = cart; } } これらのタイプの注射の両方の長所と短所は何ですか? EDIT 1:この質問はの重複としてマークされているとおり、この質問私はそれをチェックします。質問にも回答にもコード例がないため、使用している注入タイプを推測して正しいかどうかはわかりません。

7
Springで自動配線された@ValueフィールドをMockitoでモックするにはどうすればよいですか?
Spring 3.1.4.RELEASEとMockito 1.9.5を使用しています。私の春のクラスでは: @Value("#{myProps['default.url']}") private String defaultUrl; @Value("#{myProps['default.password']}") private String defaultrPassword; // ... 私が現在そのように設定しているJUnitテストから: @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration({ "classpath:test-context.xml" }) public class MyTest { 「defaultUrl」フィールドの値をモックしたいのですが。他のフィールドの値をモックしたくないことに注意してください。「defaultUrl」フィールドのみをそのままにしたいと思います。またsetDefaultUrl、クラスには明示的な「setter」メソッド(例:)がなく、テストのためだけにメソッドを作成したくないことにも注意してください。 これを踏まえて、どのようにしてその1つのフィールドの値を模擬できますか?

1
Spring @Configurationクラスを理解する
Spring @Autowiredの使い方を理解するという質問に続いて、スプリングワイヤリングの他のオプションである@Configurationクラスの完全なナレッジベースを作成したいと考えました。 次のようなSpring XMLファイルがあるとします。 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <import resource="another-application-context.xml"/> <bean id="someBean" class="stack.overflow.spring.configuration.SomeClassImpl"> <constructor-arg value="${some.interesting.property}" /> </bean> <bean id="anotherBean" class="stack.overflow.spring.configuration.AnotherClassImpl"> <constructor-arg ref="someBean"/> <constructor-arg ref="beanFromSomewhereElse"/> </bean> </beans> @Configuration代わりにどのように使用できますか?コード自体に影響はありますか?

6
@Autowiredおよび静的メソッド
@Autowired静的メソッド内から使用する必要があるサービスがあります。これは間違っていることはわかっていますが、現在の設計を変更することはできません。多くの作業が必要になるため、簡単なハックが必要です。randomMethod()非静的に変更することはできません。この自動ワイヤードBeanを使用する必要があります。それを行う方法の手がかりはありますか? @Service public class Foo { public int doStuff() { return 1; } } public class Boo { @Autowired Foo foo; public static void randomMethod() { foo.doStuff(); } }
100 java  spring  static  autowired 


2
@Autowired Beanは、別のBeanのコンストラクターで参照されるとnullになります。
以下に示すのは、ApplicationProperties Beanを参照するコードスニペットです。コンストラクタから参照するとnullになりますが、別のメソッドから参照すると問題ありません。これまで、他のクラスでこのautowired Beanを使用することに問題はありませんでした。しかし、これを別のクラスのコンストラクターで使用しようとしたのはこれが初めてです。 以下のコードスニペットでは、コンストラクターから呼び出されたときにapplicationPropertiesがnullになっていますが、convertメソッドで参照された場合はnullになりません。何が欠けている @Component public class DocumentManager implements IDocumentManager { private Log logger = LogFactory.getLog(this.getClass()); private OfficeManager officeManager = null; private ConverterService converterService = null; @Autowired private IApplicationProperties applicationProperties; // If I try and use the Autowired applicationProperties bean in the constructor // it is null ? public DocumentManager() …
89 java  spring  autowired 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.