Spring注入的三种方式
Spring实例注入的三种方式:
1.属性注入,即使用注解注入。
2.set方法注入。
3.构造方法注入。
1.属性注入
使用@Autowired、@Resource或@Inject注解注入。
1.1@Autowired:Spring提供,默认按照类型装配。必须要求要注入的对象存在,如果要允许空值,设置其required属性为true
1.2@Resource:J2EE提供,默认按照名称装配,名称可以通过name属性指定,默认取字段名进行查找并完成注入。找不到名称时才会按照类型进行装配。所以@Resource的作用其实和@Autowired类似,只不过是注入方式不同。
但是属性注入是不推荐的。
2.set方法注入
我们很少使用该方法注入,可能是因为代码过于臃肿
@Service
public class BService {
AService aService;
@Autowired
public void setaService(AService aService) {
this.aService = aService;
}
}
3.构造方法注入
@Service
public class AService {
BService bService;
@Autowired
public AService(BService bService) {
this.bService = bService;
}
}
类中有多个构造方法时,@Autowired是必须的,用来指定使用哪个构造方法。
4.使用哪种构造方法
使用构造方法注入更好,构造注入方法有以下几个优势:
4.1:依赖不可变。通过构造方法注入的bean以后无法修改。
4.2:依赖不为空。构造方法注入时会自动检查注入的对象是否为空。
4.3:完全初始化。拿到的是完全初始化的对象。
5.为什么实体类不用注入
考虑是否将一个class交由spring管理,关键看这个class产生的bean是否符合spring提供的scope的生命周期规则。
5.1、实体类需要附上对应的数据才有意义;
5.2、由spring管理并注入的类是可大量重复使用的;
5.3、一个实体类可对应多条数据,如果实例化该类,则需要针对所有的数据实例化,这是不可能的,导致程序更加臃肿,还不如需要的时候再实例化。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfhabic
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13