使用spring注解,注入sessionFactory类

本文对比分析了在Spring框架下使用Spring Hibernate时,通过继承HibernateDaoSupport和自定义BaseDao工具基类两种方法注入sessionFactory的优缺点,解释了注入原理并提供参考代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简述

目前使用spring hibernate作为项目的框架,并且使用注解方式进行对象装载。在装载Dao对象的时候常常需要注入sessionFactory对象,通常的做法是Dao继承至HibernateDaoSuppor,t然后在Dao中添加setSuperSessionFactory 方法进行注入的,这几天网上又看到一种更好的方法,所以这里就把这两种方法都记录一下。

方法一(继承HibernateDaoSupport

 这个是比较常用的方法,看到很多文章中都使用这种方式。
前置条件:
sessionFactory已在spring的配置文件中配置
步骤:
1. 继承HibernateDaoSupport类
2. 添加 setSuperSessionFactory 方法进行注入。

@Repository
public class AviatorDao extends HibernateDaoSupport {
	
	// 不能直接使用 setSessionFactory 是因为在HibernateDaoSupport中被定义为final 
	@Resource(name = "sessionFactory") 
	public void setSuperSessionFactory(SessionFactory sessionFactory){
		super.setSessionFactory(sessionFactory);
	}

}

方法二(继承BaseDao工具基类


前置条件:
sessionFactory已在spring的配置文件中配置
步骤:
1.编写BaseDao工具基类,并定义sessionFactory属性
2.对这个sessionFactory进行注解注入(配置@Resource标签)
3.Dao继承BaseDao工具基类

参考代码:

原理分析

其实注入的原理也比较简单,sessionFactory本身在spring的环境中已经有了,所以其实在dao中本身也可以注解一个sessionFactory,但是以上两种方式的优势在于及注入了sessionFactory又继承了一些通用的方法。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值