春季交易和aop

时间:2013-01-17 11:46:35

标签: spring transactions aop

我正在使用spring编写一个简单的应用程序,我使用spring注释定义了我的daos和服务,并将hibernate定义为orm和事务管理器,如下所示:

<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource"
    destroy-method="close" p:driverClassName="${jdbc.driverClassName}"
    p:url="${jdbc.databaseurl}" p:username="${jdbc.username}" p:password="${jdbc.password}" />

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

<property name="packagesToScan">
    <list>
        <value>com.skyfence.management.cm.model</value>
    </list>
</property>




    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">${jdbc.dialect}</prop>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.hbm2ddl.auto">create</prop>
        </props>
    </property>
</bean>

<tx:annotation-driven />
<bean id="transactionManager"
    class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
</bean>

就像你可以看到我正在使用注释进行交易管理, 在此之前一切正常。 然后我添加了一个Logger Aspect来在每个方法之前和之后添加log4j打印输出,所以我将以下内容添加到我的applicationContext.xml

<aop:aspectj-autoproxy />

并创建了一个新的带注释的方面类:

@Aspect
@Component
public class LoggingAspect
{
}

问题是从那时起hibernate不再工作了,我得到以下异常: org.hibernate.HibernateException:找不到当前线程的会话

我怀疑通过添加方面,交易停止工作,但我不知道如何解决它

任何帮助将不胜感激,

0 个答案:

没有答案