您的位置:首页 > 编程语言 > Java开发

Spring+Hibernate下泛型DAO的自动注入

2011-10-13 15:44 78 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/jnoee/article/details/88335541

泛型DAO能给编码节省大量的代码,一个通用的泛型DAO类即可完成整个DAO层的功能,基本的结构如下:

/**
* 泛型DAO。
*
* @param <T>
*            业务实体类型
*/
public class Dao<T> {
@Resource
private SessionFactory sessionFactory;
private Class<T> clazz;

/**
* 构造方法。
*
* @param clazz
*            业务实体类
*/
public Dao(Class<T> clazz) {
this.clazz = clazz;
}
...
}

在Spring配置文件中为每个业务实体注册一个xxxDao组件,通过构造方式将业务实体Class注入,在业务逻辑层即可调用各个业务实体的DAO进行数据操作。

 

在Spring配置文件中为每个业务实体注册一个xxxDao组件是一个相当繁琐的事情,过多的配置容易出错或遗漏,下面是采用自动注入方式来简化这个过程的思路。

1. Spring容器的扩展点BeanFactoryPostProcessor接口允许我们对bean的注入进行处理。

2. 在sessionFactory的配置中可以找到业务实体类或要扫描的业务实体类所在包,我们可以拿到业务实体的Class列表。

3. 通过编程的方式为每个业务实体注册一个DAO组件。

 

注:如何拿到业务实体的Class列表可参考Spring的AnnotationSessionFactoryBean实现方法;Spring中通过编程方式注入bean也是需要了解的知识。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: