关于Spring与hibernate整合的困惑
2015-10-30 23:52
519 查看
在整合Spring和Hibernate的过程中遇到一点问题。不太明白Spring是怎样将SessionFactory实例化的,我的applicationContext.xml如下配置
但是我改变了测试方法如下:
这样又能够执行成功。sessionFactory注入成功。不清楚为什么会有这两种结果。希望能有高手能帮我解惑。
<!-- 自动扫描与装配bean --> <context:component-scan base-package="com.bjwl"></context:component-scan> <!-- 一、配置SessionFactory,在这里写所有的Hibernate配置 注意:hibernate配置前最好都加上"hibernate."前缀 --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="hibernateProperties"> <props> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> </props> </property> <property name="mappingLocations"> <list> <value>classpath:com/bjwl/domain/*.hbm.xml</value> </list> </property> </bean> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <!-- 二、配置声明式事务管理,采用基于注解的方式 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <tx:annotation-driven transaction-manager="transactionManager"/>
public class HibernateTest { //ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); @Resource private SessionFactory sessionFactory; public void test1(){ //SessionFactory sessionFactory = (SessionFactory) ac.getBean("sessionFactory");(可以获取到sessionFactory) System.out.println(sessionFactory);//(输出为null,也就是sessionFactory没有注入) } }
但是我改变了测试方法如下:
@Service public class UserService { @Resource private SessionFactory sessionFactory; @Transactional public void saveTwoUsers() { Session session = sessionFactory.getCurrentSession(); session.save(new Person()); // int a = 1 / 0; // 这行会抛异常 session.save(new Person()); } } @Test public void testTransaction() throws Exception { UserService userService = (UserService) ac.getBean("userService"); userService.saveTwoUsers(); }
这样又能够执行成功。sessionFactory注入成功。不清楚为什么会有这两种结果。希望能有高手能帮我解惑。
相关文章推荐
- java基础阶段关于斐波那契数列的问题
- Java的锁机制
- JAVA相关基础知识(2)
- JAVA相关基础知识(1)
- SpringMVC ModelAndView跳转失效
- [置顶] Java内存模型&volatile关键字
- Struts2_ValueStack,OGNL详解
- Java线程:创建与启动(二)
- java冒泡排序
- 数据挖掘聚类算法(DBSCAN、Kmeans)Java实现
- Spring StateMachine 介绍
- 2015第44周五Java集群技术(转)
- Java实现简易的文本编辑器
- Java实现简易的文本编辑器
- spring 与设计模式(创建型)之工厂模式Factory
- Java基础之组成概念图
- 关于java 与 ajax之间调用的一些总结
- spring
- 了解vo pojo javabean dto
- 流程控制