- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图通过阅读broadLeaf
来学习一些spring知识。
为什么有些broadLeaf
使用ApplictionContext.getBean()而不是@Autowired注释?
最佳答案
你好!
从根本上来说,它们的目的是做同样的事情,即从 spring 容器(即 ApplicationContext
)获取一个 bean 来使用。您可以认为 @Autowired 实际上会在幕后完成由 ApplictionContext.getBean() 完成的工作。
不同之处在于,使用 ApplictionContext.getBean()
时,开发人员自己负责整个过程。他们必须通过手动调用 getBean 来确保获得正确的 Bean ()
具有正确的参数。但是当使用 @Autowired 时,开发人员不需要手动执行此过程。相反,他们只需要声明他们想要什么 bean,Spring 就会为他们获取这些 bean。因此,这在某种程度上就是控制反转(IOC)的精神,因为控制上述任务的责任被倒置并从开发人员转移到了框架。
作为最佳实践,我们应该始终首先使用@Autowired
。不仅更加方便,不易出错,而且我们的领域代码不会依赖于 Spring 框架类(即 ApplictionContext
),这使得我们的代码看起来更加干净。
如果您遇到 @Autowired
无法满足您的要求的情况,因为您需要最灵活地获取 bean,那么请检查 ApplictionContext
是否可以帮助您那时。
关于spring 使用 ApplicationContex.getBean() 和 @Autowired 有什么不同?我如何决定选择哪一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54476536/
我试图通过阅读broadLeaf来学习一些spring知识。 为什么有些broadLeaf使用ApplictionContext.getBean()而不是@Autowired注释? 最佳答案 你好!
我试图通过阅读broadLeaf来学习一些spring知识。 为什么有些broadLeaf使用ApplictionContext.getBean()而不是@Autowired注释? 最佳答案 你好!
我正在尝试使用 SpringBoot 和 Hibernate 运行我的应用程序,但出现错误:java.lang.IllegalStateException:无法加载 ApplicationContex
我是一名优秀的程序员,十分优秀!