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

  • 相关阅读:
    JavaScript的兼容小坑和调试小技巧
    前端jQuery实现瀑布流
    angular常用属性大全
    Eclipse易卡死
    工作反思
    半年回忆
    努力做到
    产品经理如何应对技术的「做不了」这样的问题(转)
    优秀的产品经理我还有多远
    简历技巧
  • 原文地址:https://www.cnblogs.com/solverpeng/p/5687304.html
Copyright © 2011-2022 走看看