私のプロジェクトをspring-3.1.2とjava-6からSpring-4.1.6とjava-8に移行しました。 Spring @Qualifier注釈付きセッターメソッドは、このマイグレーションの後に呼び出されず、その結果、指定された変数に対してヌル値が返されます。Spring4 issue- Spring @Qualifierアノテーションが呼び出されないセッターメソッド
春の例外はありません。ちょうどSpring-4は@Qualifierアノテーションを持つセッターメソッドを呼び出さない。
豆は、このクラスパッケージとは異なるパッケージです。しかし、対応するパッケージは私のクラスにインポートされます。
追加のSpring-4(バージョン4.1.6)設定が必要な場合はどうすれば助かりますか?以下は
は、サンプルコードスニペットです:2つのプライベート属性を持つ私のクラス:
private ExtractionContextBasedSyntheticAwareAssetIdentitiesProvider<AssetId> syntheticAwareProvider;
private ExtractionContextBasedSyntheticAwareAssetIdentitiesProvider<AssetId> sfmSyntheticAwareProvider;
対応するセッターメソッドは次のとおりです。
public void setSyntheticAwareProvider(
@Qualifier("extractionContextBasedSyntheticAssetIdentitiesProvider") ExtractionContextBasedSyntheticAwareAssetIdentitiesProvider<AssetId> syntheticAwareProvider) {
this.syntheticAwareProvider = syntheticAwareProvider;
}
public void setSfmSyntheticAwareProvider(
@Qualifier("extractionContextBasedSfmSyntheticAssetIdentitiesProvider") ExtractionContextBasedSyntheticAwareAssetIdentitiesProvider<AssetId> sfmSyntheticAwareProvider) {
this.sfmSyntheticAwareProvider = sfmSyntheticAwareProvider;
}
対応beans.xmlのは、次のとおりです。
<bean id="extractionContextBasedSfmSyntheticAssetIdentitiesProvider"
class="com.package.ExtractionContextBasedSfmSyntheticAwareAssetIdentitiesProviderImpl">
<property name="sfmSyntheticAwareAssetPidDAO" ref="sfmSyntheticAwareAssetPidDAO" />
</bean>
<bean id="extractionContextBasedSyntheticAssetIdentitiesProvider"
class="com.package.ExtractionContextBasedSyntheticAwareAssetIdentitiesProviderImpl">
<property name="syntheticAwareAssetPidDAO" ref="syntheticAwareAssetPidDAO" />
</bean>
'あなたはオートワイヤリングが、明示的に使用していないようQualifer'は、ここでは何もしません@ xmlを使用した配線。オートワイヤリングを使用している場合は、メソッドに '@ Autowired'メソッドをアノテートする必要があります。そうすることで意味をなさないので、XML設定を削除する必要があります。 –