什么时候去构造器注入,什么时候去Spring注入参数
作者:互联网
我比较新鲜,最近刚开始学习Spring.在Spring依赖注入中,我们
可以通过两种方式注入bean,一种是通过构造函数,另一种是通过
setter方法.我的问题是,在什么情况下构造函数注入更好,并且
在什么情况下使用setter方法注入效果更好.我的重点只在哪里使用?
如果可能,请给我一个例子.
解决方法:
还有第三种方式:场注入.
您可以在(甚至是私有的)字段直接应用注释@ Resource,@ Inject或@Autowire.该字段甚至不需要使用吸气剂或塞特器.
如果您正在构建Spring应用程序,并且没有计划在非Spring应用程序或库中使用这些类,那么对于90%的类而言,字段注入就足够了.
我喜欢它,因为它的代码更少.
当然,如果将构造函数用于强制引用,那么在创建新实例时将无法忘记其中之一.但是(这是我的观点,这与Alef Arendsen在3岁的Spring 2.0博客文章“ Setter injection versus constructor injection and the use of @Required””中的情况不同),您有一个spring bean,而不是一个简单的类.而这个bean是由spring创建的,而不是您直接创建的因此,如果对字段使用@ Resource,@ Inject或@Autowire或setter spring也会对其进行检查,并且如果不能满足所有引用,则不要将Bean和整个应用程序投入使用.
标签:spring,inversion-of-control 来源: https://codeday.me/bug/20191031/1973428.html