为了账号安全,请及时绑定邮箱和手机立即绑定

自动装配与导入

自动装配与导入

幕布斯6054654 2021-09-03 17:05:08
我对 spring boot 很陌生,我正在努力掌握它的概念。现在我在其中遇到了@Autowired。我对它非常了解。就像,当您编写 @Autowired 时,事情发生在两次传递中,并且在第二次传递中 spring 注入 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();    }}为什么我应该/不应该选择后者?做第一个有什么好处吗?我应该在哪里使用第一个,我应该在哪里使用第二个?
查看完整描述

2 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

它基本上是关于对象创建的。当您自动装配某些东西时,该特定 bean 由 spring 上下文管理,并且只有特定类的一个实例将由 spring 上下文构造,并且当您对该类类型对象使用 Autowire 时,将提供该特定实例。但是当你将一些东西导入你的类时,这并不意味着你有那个特定类的实例;你必须自己初始化它。如果你想把它当作一个单例对象,基本上你会为它编写完整的代码。

此外,它们之间还有一些基本区别,比如如果您想访问类中的静态变量,则不需要该类的实例。(您可以通过类引用访问它们)在这种情况下,您不需要 Autowire 但需要 Import 语句。

但另一方面,如果您有兴趣体验 Spring 的力量,比如 Autowire 配置,并且可能会验证它们以及 spring 提供的所有那些很酷的功能,您需要根据需要使您的类成为组件和 Autowire。


查看完整回答
反对 回复 2021-09-03
?
长风秋雁

TA贡献1757条经验 获得超7个赞

我相信你混淆了 Spring 和 Java 语言。

Autowire与“代码注入”有关。(就像您描述的那样。)并且是 Spring 框架的一部分。

但是,import(带有小写的 i)是 Java 语言的一部分。就像你说的,让其他代码可以在你添加它的类中使用。import无论您是否使用 Spring 框架,都将使用。

这两个语句的目的完全不同,并且与其他语句一起使用。

例如。您正在自动装配的类也将被导入(如果它在不同的 Java 包中)。

但话虽如此,@ImportSpring 框架中还有一个注解用于导入 Spring Configuration 类。我猜这是混淆的起源。

我强烈建议您完成 Java 课程的快速介绍。这将使您学习 Spring 更加愉快:)


查看完整回答
反对 回复 2021-09-03
  • 2 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信