1、Spring 指定datasource
??? A)
参考文档,找dbcp.BasicDataSource
??????? i、c3p0
??????? ii、dbcp
??????? iii、proxool
??? B)
在DAO或者Service中注入dataSource
??? C)
在Spring中可以使用PropertyPlaceHolderConfigure来读取Properties文件的内容
2、 Spring整合Hibernate
<bean .. AnnotationSessionFactoryBean>
<property dataSource
<annotatedClasses
引入hibernate 系列jar包
User上加Annotation
UserDAO或者UserServie 注入SessionFactory
jar包问题一个一个解决
声明式的事务管理
事务加在DAO层还是Service层?
annotation
加入annotation.xsd
加入txManager bean
<tx:annotation-driven
在需要事务的方法上加:@Transactional
需要注意,使用SessionFactory.getCurrentSession 不要使用OpenSession
@Transactional详解
什么时候rollback
运行期异常,非运行期异常不会触发rollback
必须uncheck (没有catch)
不管什么异常,只要你catch了,spring就会放弃管理
事务传播特性:propagation_required
read_only
xml(推荐,可以同时配置好多方法)
<bean txmanager
<aop:config
<aop:pointcut
<aop:advisor pointcut-ref advice-ref
<tx:advice: id transaction-manager =
HibernateTemplate、HibernateCallback、HibernateDaoSupport(不重要)介绍
设计模式:Template Method
Callback:回调/钩子函数
第一种:(建议)
在spring中初始化HibernateTemplate,注入sessionFactory
DAO里注入HibernateTemplate
save写getHibernateTemplate.save();
第二种:
从HibernateDaoSupport继承
必须写在xml文件中,无法使用Annotation,因为set方法在父类中,而且是final的
spring整合hibernate的时候使用packagesToScan属性,可以让spring自动