志在指尖
用双手敲打未来

spring依赖注入

调用者只要被动承受spring容器为调用者的成员变量赋值即可,而不需求自动获取被依靠目标。这种被动获取的方式就叫做依靠注入,又名控制反转。
例如:servtel层目标调用dao层目标时,之前是需求new一个dao目标然后调用dao的办法,这样就加强了两个目标间的耦合联系
我们能够在xml在进行装备,使dao目标由工厂容器去分配,自己不必new也能够运用
依靠注入又分为设值注入和结构注入
1.设值注入:(常用)
需求提供变量的set办法
运用bean标签下的property标签
·特点:name:成员变量名字,ref:是指传入的参数,ref一般是装备文件中出现的id,value:基本类似的值(如Stringint)
代码完成:
privateselect_datadao;
publicvoidsetDao(select_datadao){
this.dao=dao;
}
XML的装备:
2.结构注入
需求提供传参结构办法
运用bean标签下的constructor-arg标签
标签特点:name:成员变量名字,ref:是指传入的参数,ref一般是装备文件中出现的id,value:基本类似的值(如Stringint)java
代码完成:
privateselect_datadao;
publicuse_servlet(select_datadao){
this.dao=dao;
}
xml装备:
3.两者的优劣点
设值注入:
a)与传统的Javabean的写法更相似,经过setter办法设定依靠联系显得愈加直观自然
b)关于复杂的依靠联系,如果采用结构注入,会导致结构器过于臃肿
c)多参数情况下使得结构器变得愈加笨重
结构注入:
a)结构注入能够在结构器中决议依靠联系的注入次序
b)不运用的成员变量,在目标建立的时候也被逼实例化
c)依靠联系只能在结构器中设定,更契合高内聚的准则
主张采用以设值注入为主,结构注入为辅的注入战略。关于依靠联系无须变化的注入,尽量采用结构注入;而其它依靠联系的注入,则考虑设置注入。
4.List和Array的注入:
以设值办法为例,需求运用property标签下对应的子标签
代码完成:
privateListlist;
privateint[]arr;
publicvoidsetArr(int[]arr){
this.arr=arr;
}
publicvoidsetList(Listlist){
this.list=list;
}
xml装备:
迪丽热巴
赵丽颖
杨幂

未经允许不得转载:IT技术网站 » spring依赖注入
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载