在实际应用过程中,发现一个问题,其表现形式为:

在访问数据库时,在多次(8)访问过后就出现容器不在继续访问。

有点像挂起。

 

研究发现,没有配置OpenSessionInViewFilter这个拦截器。

至于为什么,网上大把。主要就是提出没有配置这个,hibernate没有自动flush的功能。

 下面把配置方式放上来。在web.xml文件中添加

<filter>
  <filter-name>hibernateFilter</filter-name>
  <filter-class>
   org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
  </filter-class>
  <init-param>
   <param-name>singleSession</param-name>
   <param-value>true </param-value>
  </init-param>
 </filter>
 <filter-mapping>
  <filter-name>hibernateFilter</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping> 

 

-----------------------------------------------------------------------------------------------

 

Spring 配置文件

<!-- 事务管理 -->

    <bean id="transactionManager"

       class="org.springframework.orm.hibernate3.HibernateTransactionManager">

       <property name="sessionFactory" ref="sessionFactory"/>

    </bean>

 

    <!-- 配置事务拦截器 -->

    <bean id="transactionInterceptor"

       class="org.springframework.transaction.interceptor.TransactionInterceptor">

       <!--  事务拦截器bean需要依赖注入一个事务管理器 -->

       <property name="transactionManager">

           <ref bean="transactionManager"/>

       </property>

       <property name="transactionAttributes">

           <!--  下面定义事务传播属性-->

           <props>

              <prop key="*">PROPAGATION_REQUIRED</prop>

              <prop key="save*">PROPAGATION_REQUIRED</prop>

              <prop key="update*">PROPAGATION_REQUIRED</prop>

              <prop key="delete*">PROPAGATION_REQUIRED</prop>

           </props>

       </property>

    </bean>

 

    <!-- 定义BeanNameAutoProxyCreator -->

    <bean id="beanNameAutoProxyCreator"

       class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">

       <property name="beanNames">

           <list>

              <value>*DAO</value>

           </list>

       </property>

       <property name="interceptorNames">

           <list>

              <idref local="transactionInterceptor"/>

           </list>

       </property>

       <property name="proxyTargetClass" value="true"/>

    </bean>

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐