浅析Spring之sessionFactory
我们知道当我们集成Hibernate,我们需要Spring管理事务,自然而然就需要SessionFactory来创建Session,但是我们发现在Spring依赖注入的并不是SessionFactory,而是org.springframework.orm.hibernate3.LocalSessionFactoryBean
通过LocalSessionFactoryBean源码发现LocalSessionFactoryBean extends AbstractSessionFactoryBean,而AbstractSessionFactoryBean implements FactoryBean<SessionFactory>的一个接口
public interface FactoryBean<T> {
T getObject() throws Exception;
Class<?> getObjectType();
boolean isSingleton();
}
LocalSessionFactoryBean 并不是真正的SessionFactory,只是拥有创建SessionFactory的能力,但Spring会自动把对这个Bean的引用转换成LocalSessionFactoryBean里面的SessionFactory。所以当Spring加载时,如果发现某个bean实现了FactoryBean接口,就会自动调用FactoryBean.getObject(),返回对应的实例。所以使用ctx.getBean("sessionFactory");Spring返回的不是LocalSessionFactoryBean本身,而是返回具体的<T>
总结:通过Spring的这个特性我们也可以编写类似于这种模式功能,只要实现FactoryBean<SessionFactory>接口,接下来就可以通过Spring返回你想返回的对象了
浅析Spring之sessionFactory相关推荐
- 浅析Spring事务传播行为和隔离级别
7个传播行为.4个隔离级别. Spring事务的传播行为和隔离级别[transaction behaviorand isolatedlevel] Spring中事务的定义: Propagation(k ...
- Java怎么使用spring定时器_浅析spring定时器的使用
原生的Java定时器 使用Java.util包下的定时器也很简单,具体代码如下: //设置定时器开始时间 Date time = sdf.parse("2020-10-01 16:40:00 ...
- 浅析 Spring Security 的认证过程及相关过滤器
前言 上一篇文章 浅析 Spring Security 核心组件 中介绍了Spring Security的基本组件,有了前面的基础,这篇文章就来详细分析下Spring Security的认证过程. S ...
- Spring的sessionFactory配置详解
一句话,Spring对Hibernate的整合,是在applicationContext.xml中配置sessionFactory来实现的,其中sessionFactory中要装配dataSource ...
- Spring配置SessionFactory
Spring的核心模块之一为依赖注入,普遍使用的为Set方式注入,那么下面将借助该方式配置数据源和SessionFactory. 直接引用hibernate.cfg.xml配置文件 ...
- 浅析Spring 事务(十九) 简介事务
经过前面十八个章节的浅析,我们已经初步了解了Spring框架的左膀右臂IoC和AOP,今天我们开始一起分析一下Spring的事务~ 首先,今天算是开篇介绍~先说一下,什么是事务,事务是数据库的比较特有 ...
- 浅析Spring——控制反转IoC
目录 1. IoC理论推导 2. 什么是IoC? 3. 引入DI 4. IoC容器 5. 注入对象的四种方法 1.基于接口 2.基于setter 3.基于构造函数 4.基于注解 6. 两种IoC实现方 ...
- Mybatis和Spring集成 sessionFactory.openSession() 事务不生效问题
问题描述 Mybatis和Spring集成,查阅官方文档,得知Spring总会为你处理事务. 官方文档连接:http://mybatis.org/spring/zh/transactions.html ...
- java spring 登录验证_浅析Spring Security登录验证流程源码
一.登录认证基于过滤器链 Spring Security的登录验证流程核心就是过滤器链.当一个请求到达时按照过滤器链的顺序依次进行处理,通过所有过滤器链的验证,就可以访问API接口了. SpringS ...
最新文章
- 女生读计算机专业好,女生选择计算机专业就读好吗?
- vwmare vSphere 4.0产品介绍
- aspose.words for java操作文档doc,设置一级二级三级标题以及段落表格等详情
- java的framework_JAVA FRAMEWORK
- TikZ学习笔记(三)图形的标记与交点
- 程序员修炼道路上的“葵花宝典”——博文视点大讲堂42期快乐结束
- 深入理解 ASP.NET 动态控件 (Part 1 - 感性认识)
- 软件开发工作过程中的一些总结
- 怎么读取二代身份证UUID----在STM32+CLRC663平台试验成功
- CMOS Image Sensor的接口硬件设计(DVP/MIPI CSI)
- 微信小程序分享/转发功能方法
- 威漫哨兵机器人_漫威:哨兵机器人天下无敌?这几位变种人就不把他们放在眼里...
- npm WARN using --force Recommended protections disabled.
- Linux下ppp拨号+电信3G模块
- 权变理论计算机管理理论,权变理论视角的教育管理研究
- linux2T硬盘分区命令,linux系统使用parted命令对大于2T的硬盘进行分区教程
- python各类地图绘制
- 图像操作(反差,混合,调整图像亮度与对比度,绘制文字)
- TA100 T3.7 TB(D)R
- 大数据实时传输组件Maxwellmaxwell中遇到的问题