@Autowiredでは自動検出ですか? @Qualifierが使用されているとき、それは名前によって統制された注射ですか?アノテーションを使用してセッターとコンストラクターの注入を行うにはどうすればいいですか?Spring @Autowiredと@Qualifier
3
A
答えて
7
@Autowiredと共に@Qualifierを使用できます。 Infactは春には、ケースを以下にそれが必要であるあなたが例えば修飾子に
を提供する必要があり、その場合には、曖昧なBeanタイプが見つかった場合はBeanを選択し、明示的に要求されます@Qualifier注釈修飾子
@Component
@Qualifier("staff")
public Staff implements Person {}
@Component
@Qualifier("employee")
public Manager implements Person {}
@Component
public Payroll {
private Person person;
@Autowired
public Payroll(@Qualifier("employee") Person person){
this.person = person;
}
}
1
を提供同じタイプの複数のBeanがある場合、自動配線競合を解決するために使用されます。
@Qualifierアノテーションは、@Componentでアノテーションされたクラスでも、@Beanでアノテーションされたメソッドでも使用できます。この注釈は、コンストラクタ引数またはメソッドパラメータにも適用できます。
例: -
public interface Vehicle {
public void start();
public void stop();
}
2つのBeanがあり、車やバイクは@Qualifierアノテーションで@Autowiredを使用してVehicleServiceにおける車両インターフェース
@Component(value="car")
public class Car implements Vehicle {
@Override
public void start() {
System.out.println("Car started");
}
@Override
public void stop() {
System.out.println("Car stopped");
}
}
@Component(value="bike")
public class Bike implements Vehicle {
@Override
public void start() {
System.out.println("Bike started");
}
@Override
public void stop() {
System.out.println("Bike stopped");
}
}
ジェクトバイクBeanを実装します。 @Qualifierを使用しなかった場合は、NoUniqueBeanDefinitionExceptionがスローされます。
@Component
public class VehicleService {
@Autowired
@Qualifier("bike")
private Vehicle vehicle;
public void service() {
vehicle.start();
vehicle.stop();
}
}
関連する問題
- 1. @Qualifier()と@Autowired()は動作しません
- 2. SpringとDelegatingFilterProxyで@Autowired
- 3. spring @autowired nullpointer
- 4. Spring @Autowired @Lazy
- 5. 注入URL()Spring Autowired
- 6. Spring @Autowiredインスタンスがnull
- 7. Spring autowired bean作成
- 8. Spring 3 @Autowired Annotation Issues
- 9. Java Springデータ@Autowired issue
- 10. Spring @autowiredアノテーションを@Qualifierを使用せずに特定のタイプを選択する方法
- 11. Spring Entity Autowired Repository Null Pointer
- 12. Spring RESTful(Gradle):@Autowired results in NullPointerException
- 13. 抽象クラスのSpring Autowiredリポジトリ
- 14. Spring @autowired注釈の例
- 15. Spring + Vaadin注釈@Autowired in UI
- 16. Mockito:@Autowiredと@Mock
- 17. Spring @Autowired confusion(コンテナまたはセッション)
- 18. サービス中のNull Autowired Spring Bean(Cassandra Repository)
- 19. spring @Autowiredリポジトリがnullを返す
- 20. Spring依存性注入@Autowired setterなし
- 21. @AutowiredをSpringで使用する理由
- 22. Spring @Autowired(必須= true)がnullです
- 23. Spring-Bootは@Qualifier注釈を無視します
- 24. Spring4 issue- Spring @Qualifierアノテーションが呼び出されないセッターメソッド
- 25. Beanが別のjarファイルにあるときにSpring @Qualifierが動作しない
- 26. Spring Boot Vaadin7インテグレーション - @Autowiredとバインドできません
- 27. ReflectionTestUtilsがSpringテストで@Autowiredと動作しない
- 28. Spring @Autowiredフィールドはnullですか?ヌルとして
- 29. Spring3.0 Autowired null
- 30. spring3 @autowiredと@inject
質問が広すぎます – developer