Could not obtain transaction-synchronized Session for current thread

在servlet-context中增加

<context:annotation-config />(有了<context:component-scan base-package="XXX.XXX" />就不用写这个了)

<tx:annotation-driven/>

 还要增加xmlns 

xmlns:tx="http://www.springframework.org/schema/tx"

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd

增加类@org.springframework.transaction.annotation.Transactional注释

增加了bean(不加也可以运行)

<!-- 声明式容器事务管理 ,transaction-manager指定事务管理器为transactionManager -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="get*" propagation="REQUIRED" />
<tx:method name="*" read-only="true" />
</tx:attributes>
</tx:advice>
<aop:config expose-proxy="true">
<!-- 只对业务逻辑层实施事务 -->
<aop:pointcut id="txPointcut" expression="execution(* com.test.service..*.*(..))" />
<!-- Advisor定义,切入点和通知分别为txPointcut、txAdvice -->
<aop:advisor pointcut-ref="txPointcut" advice-ref="txAdvice"/>
</aop:config>

就可以了

原文地址:https://www.cnblogs.com/javaleon/p/3978509.html