• 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

  • 相关阅读:
    word-wrap和word-break的区别
    transform 二维转变
    过渡
    新闻下滑导航案例
    background-origin,clip
    边框图片
    背景样式
    线性渐变与径向渐变与重复渐变
    边框阴影
    盒模型和圆角
  • 原文地址:https://www.cnblogs.com/solverpeng/p/5687304.html
Copyright © 2020-2023  润新知