spring和hibernate集成

来源:互联网 发布:java urlencoder 在线 编辑:程序博客网 时间:2024/05/22 06:52

 spring对hibernate的支持

 

spring对hibernate做了很好的支持,首先它把事务从程序中分离出来,再通过AOP织入到程序中,降低了耦合性,

再通过spring封装好的LocalSessionFactoryBean得到factory大工厂,通过HibernateTransactionManager管理事务,并且管理session,所以调用业务的代码量非常简洁。

它还把事务的传播特性集成了。

 

 

 

以前的大堆的代码,只要这样就ok了。

super.getHibernateTemplate().save(user);   

它会自动管理事务的开启,事务的提交和关闭session。

 

 

在applicationContext.xml中的配置:
  

 

 

aop是通过代理的方式把分离出来的功能(事务)织入到程序中 ,默认是通过jdk动态代理实现的。

 

<aop:aspectj-autoproxy proxy-target-class="true"/>强制aop使用CGLIB字节码生成进行代理

 

如果目标对象没有实现接口,并且没有加入CGLIB包,就会出错。

 

所以目标对象不实现接口就要引入CGLIB包,这样没有实现接口的就会用CGLIB代理,实现接口的就会用jdk动态代理。

 

spring和hibernate的集成就完成了。