use*_*808 2 spring annotations javabeans broadleaf-commerce
我试图通过阅读来了解一些春天broadLeaf。
为什么有些人broadLeaf使用 ApplictionContext.getBean() 而不是 @Autowired 注释?
\xe4\xbd\xa0\xe5\xa5\xbd!
\n\n从根本上来说,它们的目的是做同样的事情,即从 spring 容器(即 )中获取 BeanApplicationContext来使用。您可以认为这实际上会完成幕后@Autowired完成的工作。ApplictionContext.getBean()
不同之处在于,使用时ApplictionContext.getBean(),开发人员自己负责整个过程。他们必须通过使用正确getBean()的参数手动调用来确保获得正确的bean。但在使用时@Autowired,开发人员不需要手动执行此过程。相反,他们只需要声明他们想要什么 bean,Spring 就会为他们获取这些 bean。因此,这在某种程度上是控制反转(IOC)的精神,因为控制上述任务的责任被反转并从开发人员转移到了框架。
作为最佳实践,我们应该始终@Autowired首先使用。不仅更加方便,不易出错,而且我们的领域代码不会依赖于Spring框架类(即ApplictionContext),这使得我们的代码看起来更加干净。
如果您遇到@Autowired无法满足您的要求的情况,因为您需要最大的灵活性来获取 Bean,那么请检查ApplictionContext当时是否可以帮助您。
| 归档时间: |
|
| 查看次数: |
1861 次 |
| 最近记录: |