Spring+jdbcTemplate配置事务处理无效

Spring+jdbcTemplate配置事务,启动不报错,但是没有效果applicationContext.xml配置数据源部分没问题,为了节约地方,不往上贴了<con... Spring+jdbcTemplate配置事务,启动不报错,但是没有效果
applicationContext.xml

配置数据源部分没问题,为了节约地方,不往上贴了

<context:property-placeholder location="classpath:jdbc.properties"/>

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
::::::
</bean>
<!-- 将dataSource注入jdbcTemplate -->

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref ="dataSource"/>
</bean>
<!-- 将jdbcTemplate注入需要调用的dao层中 -->

<bean id="financialDao" class="dao.FinancialDao">
<property name="jdbcTemplate" ref ="jdbcTemplate"/>
</bean>
<bean id="financialService" class="service.FinancialService">
<property name="financialDao" ref="financialDao" />
</bean>
<bean id="financialAction" class="action.FinancialAction">
<property name="financialService" ref="financialService" />
</bean>
<!-- 配置JDBC事务管理器 -->

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!--配置事务模板 -->

<bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager" ref="transactionManager" />
</bean>
<bean id="transactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">

<property name="transactionManager" ref="transactionManager"/>
<property name="target" ref="financialService"/>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
</beans>

实在是没有分了,大神们见谅啊!!
我想在service层中实现事务控制,所以<property name="target" ref="financialService"/>
在对应的financialService的某一个方法中有两个插入,第一次可以成功,第二次不会成功,
如果配置事务成功的话,那么应该数据库中一条数据没有,但是现在第一次的插入没有回滚,保存到了数据库中,是我少配置了什么东西么??

我尝试了一下<property name="target" ref="financialDao"/>
在dao层中进行事务管理,在dao同一个方法中2次插入,一次成功一次失败,同样没有事务的效果,
数据没有被回滚
展开
 我来答
百度网友f77eb01
推荐于2016-08-31 · TA获得超过407个赞
知道小有建树答主
回答量:615
采纳率:100%
帮助的人:416万
展开全部

貌似不是这么配置的吧。

<bean id="mysqlTransactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">

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

    <property name="transactionAttributes">

             <props>

                 <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>

                 <prop key="query*">PROPAGATION_REQUIRED,readOnly</prop>

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

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

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

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

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

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

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

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

             </props>

         </property>

 </bean>

 

 <bean class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">

    <property name="advice" ref="mysqlTransactionInterceptor"/>

    <property name="patterns">

            <list>

                <value>org\.framework\.xxx\..*</value>

            </list>

        </property>

 </bean>
追问
我还真没用过这样的配置方式。。。
这个也是声明式的事务管理么?

::::::

这一部分是什么意思?
追答
配置切面。通过正则表达式匹配目标class。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式