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

泛型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也是需要了解的知识。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值