Hibernater与spring

  管理sessionfactory有2种方式 

在整合的时候 保留hibernate的配置文件 

在spring的配置文件中这么写: 

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
  <property name="configLocation"> 
   <value>classpath:hibernate.cfg.xml</value> 
  </property> 
</bean>          

如果不保留配置文件,统一由spring管理则: 

<bean id="sessionFactory" 
  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
  <property name="dataSource"> 
   <ref local="dataSource" /> 
  </property> 
  <property name="mappingResources"> 
   <list> 
    <value>com/pojo/Person.hbm.xml</value> 
    
   </list> 
  </property> 
  <property name="hibernateProperties"> 
   <props> 
    <prop key="hibernate.show_sql">true</prop> 
    <prop key="hibernate.dialect"> 
     org.hibernate.dialect.MySQLDialect 
    </prop> 
   </props> 
  </property> 
</bean> 

spring与hibernate整合 最重要就是提供声明式服务,管理事物 

<!-- 事务处理设置 --> 
<bean id="transactionManager" 
  class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 
  <property name="sessionFactory"> 
   <ref local="sessionFactory" /> 
  </property> 
</bean> 
<!-- 所有方法使用PROPAGATION_REQUIRED类型的事务 --> 
<bean id="interceptorTransaction" 
  class="org.springframework.transaction.interceptor.TransactionInterceptor"> 
  <property name="transactionManager"> 
   <ref local="transactionManager" /> 
  </property> 
  <property name="transactionAttributes"> 
   <props> 
    <prop key="*">PROPAGATION_REQUIRED</prop> 
   </props> 
  </property> 
</bean> 
<!-- 管理所有以Service结尾的Bean --> 
<bean 
  class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> 
  <property name="beanNames"> 
   <list> 
    <value>*Service</value> 
   </list> 
  </property> 
  <property name="interceptorNames"> 
   <list> 
    <value>interceptorTransaction</value> 
   </list> 
  </property> 

你可能感兴趣的:(spring)