星空网 > 软件开发 > Java

Spring基础—— 泛型依赖注入

一、为了更加快捷的开发,为了更少的配置,特别是针对 Web 环境的开发,从 Spring 4.0 之后,Spring 引入了 泛型依赖注入。

二、泛型依赖注入:子类之间的依赖关系由其父类泛型以及父类之间的依赖关系来确定,父类的泛型必须为同一类型。

通俗一点来说:两个子类之间的依赖关系不需要在子类中去声明,而是在父类中进行了声明,而依赖的纽带就是 泛型类型,必须是相同的父类泛型类型才具有依赖关系。

三、UML 类图:

Spring基础—— 泛型依赖注入

说明:在 BaseService 中通过 @Autowired 注解自动装配了 BaseDao 的实例。而在 UserService 中并没有注入 UserDao 的实例,但是通过父类的泛型类型,

在 UserService 中已经注入了 UserDao 的实例。Department 与之类似。

四、例子:

Spring基础—— 泛型依赖注入Spring基础—— 泛型依赖注入
/** * @author solverpeng * @create 2016-07-20-9:18 */public class BaseDao<T> {  public void say() {    System.out.println("com.nucsoft.spring.Dao.BaseDao.say");  }}

BaseDao.java
Spring基础—— 泛型依赖注入Spring基础—— 泛型依赖注入
/** * @author solverpeng * @create 2016-07-20-9:18 */public class BaseService<T> {  @Autowired  public BaseDao baseDao;  public void service() {    System.out.println(baseDao);    baseDao.say();  }}

BaseService.java
Spring基础—— 泛型依赖注入Spring基础—— 泛型依赖注入
/** * @author solverpeng * @create 2016-07-20-9:18 */@Repositorypublic class UserDao extends BaseDao<User>{}

UserDao.java
Spring基础—— 泛型依赖注入Spring基础—— 泛型依赖注入
/** * @author solverpeng * @create 2016-07-20-9:18 */@Servicepublic class UserService extends BaseService<User>{}

UserService.java
Spring基础—— 泛型依赖注入Spring基础—— 泛型依赖注入
@Testpublic void test03() {  UserService userService = ctx.getBean(UserService.class);  userService.service();}

Test.java

控制台输出:

com.nucsoft.spring.Dao.UserDao@162a657e
com.nucsoft.spring.Dao.BaseDao.say




原标题:Spring基础—— 泛型依赖注入

关键词:Spring

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流