码迷,mamicode.com
首页 > 其他好文 > 详细

基于反射的通过set方法的依赖注入,可以看成一种设计模式,自己来用

时间:2016-09-22 19:37:03      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:

非常好用,在properties文件中配置字符串和类名之间的对应,在程序里读取文件,找到类名,通过反射,达到调用set方法的目的,然后直接将自己的指向其他类的对象的引用赋值,指向实体对象。

 

比如userservice类,(当然spring用这个方法依赖注入好了,但是会这个原理,可以在某些时候方便自己用)

 

有一个userDao要注入,可以让userservice继承一个baseService类,在baseService类的构造方法中,定义一个反射方法,这样每次实例化userService的时候,它的userDao属性已经被自动生成一个实例注入好了

而且其他的属性也可以直接注入,比如groupdao等

这样有点缺点就是因为是根据set方法的,如果里面有别的setXXXX方法,但是并不是注入属性的方法,就会误解

 

更好的方法是在set属性的方法上加入注解,一旦父类构造方法中的反射方法扫描到这个注解,就通过value或者默认的去掉set首字母小写的方法找到关键字符串再到properties文件中找类名,生成实例对象,再让属性引用指向这个对象。

 

优点就是不用每一个属性就自己赋予实例化对象,太麻烦,减少很多代码,而且不用在每个用到的地方都new一次。

基于反射的通过set方法的依赖注入,可以看成一种设计模式,自己来用

标签:

原文地址:http://www.cnblogs.com/chuliang/p/5897506.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!