gpt4 book ai didi

java - Spring Boot 如何知道要注入(inject)哪个对象?

转载 作者:行者123 更新时间:2023-12-01 14:13:11 26 4
gpt4 key购买 nike

假设我有以下类(class)

@Data
@Component
public class Student {

@Autowired
private Vehicle vehicle;

}


public interface Vehicle{}

@Component
public Jeep implements Vehicle{}

@Component
public Van implements Vehicle{}

Spring Boot 如何知道将哪种类型的 Vehicle 放入我的 Student 对象中?

我知道 Guice 有模块,它准确定义了某个对象是如何在需要该对象的类中使用 @Provides 和 @Singleton 以及 @Inject 构建的。

Spring Boot 有同样的东西吗?

最佳答案

我们通常使用@Qualifier(“beanName”)注解来访问相同类型的bean。

@Data
@Component
public class Student {
@Autowired
@Qualifier("Jeep")
private Vehicle vehicle;
}


public interface Vehicle{}

@Component
@Qualifier("Jeep")
public Jeep implements Vehicle{}

@Component
@Qualifier("Van")
public Van implements Vehicle{}

并且您可以使用@Primary 注释您的默认bean,以便如果没有限定符将选择该bean

@Data
@Component
public class Student {
@Autowired
private Vehicle vehicle;
}


public interface Vehicle{}

@Component
@Primary
public Jeep implements Vehicle{}

@Component
public Van implements Vehicle{}

关于java - Spring Boot 如何知道要注入(inject)哪个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63261516/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com