我对 Spring Boot 非常陌生,我正在尝试掌握它的概念。现在我在其中遇到了@Autowired。我对此非常了解。
就像,当你编写 @Autowired 时,事情会分两遍发生,在第二遍中 spring 注入(inject) bean。
现在,我有这个例子;
Class Abc {
@Autowired
private Xyz xyz;
PSVM(String...z) {
xyz.hello();
}
}
导入基本上将代码导入到文件中。
所以,
Import com.tilak.Xyz;
Class Abc {
private Xyz xyz;
PSVM(String...z) {
xyz = new Xyz();
xyz.hello();
}
}
为什么我应该/不应该选择后一种?
做第一个有什么好处吗?我应该在哪里使用第一个,在哪里使用第二个?
最佳答案
它基本上是关于对象创建。 当您 Autowiring 某些东西时,该特定 bean 由 spring 上下文管理,并且 spring 上下文只会构造特定类的一个实例,并且当您对该类类型对象使用 Autowire 时,将提供该特定实例。 但是,当您将某些内容导入到您的类中时,这并不意味着您拥有该特定类的实例;而是意味着您拥有该特定类的实例。你必须自己初始化它。如果您想将其视为单例对象,基本上您将为它编写整个代码。
此外,它们之间还有基本的区别,例如如果您想访问类中的静态变量,则不需要该类的实例。 (您可以通过类引用访问它们)在这种情况下,您不需要 Autowire,但需要 Import 语句。
但另一方面,如果您有兴趣体验 Spring 的强大功能,例如 Autowire 配置,并且可能会验证它们以及 Spring 提供的所有这些很酷的功能,那么您需要将您的类设为组件并根据需要进行 Autowire。
关于java - Autowiring 与导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52219311/