[英]How to initialize MongoClient once in Spring Boot and use its methods?
[英]how to initialize a bean in spring container once and use it everywhere
实际上,我使用Spring开发Web应用程序时,面临的问题是,一旦加载Spring容器,我就要初始化一个bean,现在我必须在程序的不同部分中使用该bean。 我具有1.的约束。我可以在任何地方获取应用程序上下文并获取该bean,但是根据我的问题,我应该获取该bean而不必一次又一次地编写该冗余代码。因此,有什么方法可以初始化该bean并使用它直接在我程序中的任何地方。
您不应该直接从上下文中获取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 Component本身,才能进行注入。
在Spring中,实际上有三种类型的依赖项注入:构造函数,字段和setter注入。 Spring团队建议使用基于构造函数的方法,而本文为这一点带来了很好的论据: https : //blog.marcnuri.com/field-injection-is-not-recommended/
您可以参考此链接以获取有关基于构造函数的注入的更多信息: https : //www.baeldung.com/constructor-injection-in-spring
如果您已经初始化了bean,则可以从Spring应用程序中的每个组件通过@Autowired访问它。
private SomeClass myBean;
@Autowired
public void setMyBean(SomeClass myBean){
this.myBean =myBean;
}
要不就:
@Autowired
private SomeClass myBean;
我更喜欢第一种方法,在我眼中看起来更奇特。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.