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

  • 相关阅读:
    avcodec_decode_video2少帧问题
    什么是I帧,P帧,B帧
    让Ubuntu可以压缩/解压缩RAR文件
    Linux 向文件末尾追加命令
    valgrind: failed to start tool 'memcheck' for platform 'amd64-linux': No such file or directory
    《王者之剑2》性能数据精讲
    Unity加载模块深度解析(纹理篇)
    Unity加载模块深度解析(Shader)
    Unity加载模块深度解析(网格篇)
    Unity将来时:IL2CPP是什么?
  • 原文地址:https://www.cnblogs.com/solverpeng/p/5687304.html
Copyright © 2011-2022 走看看