Spring 学习之路(七): Spring 中的泛型依赖注入

在前面的笔记中,我已经详细为大家介绍了如何通过配置文件和注解将 bean 注入 ioc 容器,可以发现,使用注解开发能节省好多好多时间,现在的主流也是使用注解进行开发,但是如果我们不先了解最开始的xml文件配置,后面使用注解也不清楚它的巨大好处,更何况现在依然会使用 xml 进行 bean 的配置(主要是针对一些插件的注入和三方框架的整合)
  • 接下来为大家介绍 spring4.0 就推出的超级强大的泛型依赖注入
强大的泛型依赖注入
  • 我们在之前的开发中,都会将通用的数据库操作封装在一个 BaseDao父类中,然后通过 BaseService 父类进行调用,通过泛型确定 不同的 BaseService 和 BaseDao 子类,整个步骤相当繁琐,但是如果使用 spring 为我们提供的泛型依赖注入就会大大提高开发效率
  • 我们先来看一端代码,然后做出解释
- 定义父类

public class BaseDao<T> {

}

public class BaseService<T> {

    @Autowired
    protected BaseDao<T> baseDao;

    public void say() {
        System.out.println("baseService.....");
        System.out.println(baseDao);
    }
}

- 定义javaBean

public class User {

}

- 定义子类

@Repository
public class UserDao<User> extends BaseDao<User>{

}

@Service
public class UserService<User> extends BaseService<User> {

}

- 测试

public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("beans-genericDI.xml");
        UserService<User> bean = (UserService<User>) context.getBean("userService");
        bean.say();
    }

console:

mark

  • 现在开始解释:

    1. BaseDao 定义通用的数据库操作,BaseService 定义通用的业务逻辑,在 BaseService 中通过注解注入 BaseDao(BaseService的子类将会自动注入这个子类对应的泛型类型的成员变量的引用)

    2. UserService 继承 BaseService,UserDao 继承 BaseDao,将这两个类交给 ioc 容器管理,IOC 容器注入 UserService 这个bean 实例的时候 自动注入对应的 userDao 这个bean 实例的引用(当我们调用 userService 的方法的时候(实际是继承父类的say()方法),可以清楚的发现)

  • 源代码点我

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值