2 回答
TA贡献1780条经验 获得超1个赞
你不应该直接从上下文中获取你的 bean,而是你应该 @Autowire 它们并让 Spring 为你注入它。
这是通过构造函数注入的两个依赖项的示例:
@Component
public class Car {
private final Engine engine;
private final Transmission transmission;
@Autowired
public Car(Engine engine, Transmission transmission) {
this.engine = engine;
this.transmission = transmission;
}
}
请注意,您的类必须是 Spring 组件本身才能进行注入。
Spring 中的依赖注入实际上分为三种类型:构造函数注入、字段注入和 setter 注入。Spring 团队推荐使用基于构造函数的方法,这篇文章为这一点带来了非常好的论据:https : //blog.marcnuri.com/field-injection-is-not-recommended/
您可以参考此链接以获取有关基于构造函数的注入的更多信息:https : //www.baeldung.com/constructor-injection-in-spring
TA贡献1831条经验 获得超9个赞
如果你已经初始化了你的 bean,你可以通过 @Autowired 从你的 Spring 应用程序中的每个组件访问它。
private SomeClass myBean;
@Autowired
public void setMyBean(SomeClass myBean){
this.myBean =myBean;
}
要不就:
@Autowired
private SomeClass myBean;
我更喜欢第一种方法,在我眼里看起来更漂亮。
添加回答
举报