zoukankan      html  css  js  c++  java
  • Spring基础—— 泛型依赖注入

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

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

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

    三、UML 类图:

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

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

    四、例子:

    /**
     * @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
    /**
     * @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
    /**
     * @author solverpeng
     * @create 2016-07-20-9:18
     */
    @Repository
    public class UserDao extends BaseDao<User>{}
    UserDao.java
    /**
     * @author solverpeng
     * @create 2016-07-20-9:18
     */
    @Service
    public class UserService extends BaseService<User>{}
    UserService.java
    @Test
    public void test03() {
        UserService userService = ctx.getBean(UserService.class);
        userService.service();
    }
    Test.java

    控制台输出:

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

  • 相关阅读:
    linux shell 小技能
    Jenkins 2.60.x 2种发送邮件方式
    Linux wget 批量下载
    日语阅读-2-如何看“何々的”的用法
    日语阅读-1-如何看ほう的用法
    [日本语]初级语法
    Python基础
    Python基础(10)
    Python基础(8)
    Python基础(7)
  • 原文地址:https://www.cnblogs.com/solverpeng/p/5687304.html
Copyright © 2011-2022 走看看