0 0

spring 里面同时使用 注解事务 和 拦截器的 疑问30

        各位大家好,我在spring的配置文件里面 注册了注册了一个service的拦截器,然后我给这个service添加了一个事务的注解

结果在代码里面我的service的所有方法事务都失效了(如果把service的拦截器那段配置去掉,则事务成功),很奇怪,请大家帮忙看看,我的service拦截器配置以及事务配置如下:

 

<!--这里是配置了事务管理-->

<bean id="dataSource" class="com.p6spy.engine.spy.P6DataSource">
        <constructor-arg>
            <ref local="dataSourceTarget" />
        </constructor-arg>
    </bean>
    <!--
        Configurer that replaces ${...} placeholders with values from a
        properties file
    -->
    <!--
        (in this case, JDBC-related settings for the dataSource definition
        below)
    -->
    <context:property-placeholder location="classpath:jdbc.properties" />
    <!--
        Local C3P0 DataSource that works in any environment See JPetStore for
        an example of using Apache Commons DBCP as alternative (Both
        DataSource implementations have a "close" method to be called on
        shutdown)
    -->
    <bean id="dataSourceTarget" class="com.mchange.v2.c3p0.ComboPooledDataSource"
        destroy-method="close">
        <property name="driverClass" value="${jdbc.driverClassName}" />
        <property name="jdbcUrl" value="${jdbc.url}" />
        <property name="user" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
        <property name="minPoolSize" value="${jdbc.miniPoolSize}" />
           <property name="maxPoolSize" value="${jdbc.maxPoolSize}"/> 
           <property name="initialPoolSize" value="${jdbc.initialPoolSize}"/>
           <property name="maxIdleTime" value="${jdbc.maxIdleTime}"/>
           <property name="acquireIncrement" value="${jdbc.acquireIncrement}"/>
           <property name="acquireRetryAttempts" value="${jdbc.acquireRetryAttempts}"/>
           <property name="acquireRetryDelay" value="${jdbc.acquireRetryDelay}"/>
           <property name="checkoutTimeout" value="${jdbc.checkoutTimeout}"/>
    </bean>
    <!--Transaction manager for a single JDBC DataSource -->
    <bean id="transactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />
    </bean>
    <!--define '0' as PROPAGATION_REQUIRED -->
    <bean id="defaultTransactionDefinition"
        class="org.springframework.transaction.support.DefaultTransactionDefinition">
        <property name="propagationBehavior" value="0" />
    </bean>
   
    <tx:annotation-driven transaction-manager="transactionManager" /> 
   
    <!-- 配置jdbcTemplate -->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource" />
    </bean>

 

 

<!--这里是配置了service的拦截器-->

<bean id="landMarkManagementServiceProxy" class="org.springframework.aop.framework.ProxyFactoryBean">
        <property name="proxyInterfaces">
            <value>com.sbl.dgpt.geoManage.service.LandMarkManagementService
            </value>
        </property>
        <property name="target">
            <ref bean="landMarkManagementService"/>
        </property>
        <property name="interceptorNames">
            <list>
                <value>logInterceptorAdvice</value>
            </list>
        </property>
    </bean>

 

 

 

 

2013年6月09日 19:56

1个答案 按时间排序 按投票排序

0 0

从你的用法上看是没有问题的。

建议你debug看下 可以按照如下文章看是否走了事务代理
http://jinnianshilongnian.iteye.com/blog/1487235

或者提供具体的测试用例,可以帮你分析下。


引用
结果在代码里面我的service的所有方法事务都失效了(如果把service的拦截器那段配置去掉,则事务成功)
这个失败了是什么意思? 抛异常 还是事务不起作用

2013年6月10日 17:10

相关推荐

    springMVC+Mybatis3.1+spring3.1.2包含事务,注解,拦截器

    springMVC+Mybatis3.1+spring3.1.2(包含事务详解,代码诠释,含数据库文件...展示了增、删、改、查、注解、拦截器、spring事务配置(亲测成功),sql文 件!!赶紧来下载给好评!!! web project 完全可以跑起来!!!

    mybatis 拦截器 + spring aop切面 + spring事务+ 反射工具类

    内含有mybatis 拦截器实现的分页代码,spring 的事务和aop 测试、和反射工具类

    spring五种事务配置demo

    测试spring事务管理 搭建了ssh框架的web工程 本工程用到的数据库表很简单 ... 第4种方式:使用tx标签配置的拦截器 详见spring-core-transaction-4.xml 第5种方式:全注解 详见spring-core-transaction-5.xml

    深入理解Spring声明式事务:源码分析与应用实践

    在Spring中,事务管理是通过一系列的拦截器和事务管理器来实现的。当一个被@Transactional注解的方法被调用时,Spring会创建一个代理来包装该方法,确保事务的正确开始和结束。这种代理机制基于Spring AOP实现,能够...

    声明式事务1

    事务增强器是指事务相关的组件,包括事务注解的信息、事务拦截器和事务管理器等。事务增强器会拦截目标方法的调用,以便实现事务的提交和回滚。 1. 事务注解的信息:事务增强器会解析事务注解的信息,以便确定事务...

    spring事务管理几种方式代码实例

    spring事务管理几种方式代码实例:涉及编程式事务,声明式事务之拦截器代理方式、AOP切面通知方式、AspectJ注解方式,通过不同方式实例代码展现,总结spring事务管理的一般规律,从宏观上加深理解spring事务管理特性...

    SSM框架教程Spring+SpringMVC+MyBatis全覆盖_Java热门框架视频教程

    3、Spring注解开发 4、Spring web环境及其Junit的集成 5、Spring JDBCTemplate的基本使用 6、Spring AOP的介绍及其配置使用 7、Spring的声明式事务控制 8、SpringMVC的介绍及其快速入门 9、SpringMVC的数据请求和...

    基于SSM框架(SpringMVC + Spring + Mybatis)的图书管理系统,内附,教程,数据库脚本

    1 此系统采用了目前最流行的ssm框架,其中的spingMVC框架相对于struts2框架更灵活,更安全。 2 本项目springMVC框架采用了注解映射器,使用了...5 spring容器内部使用拦截器,以Spring AOP的方式实现事务控制管理。

    Spring笔记说明文件

    2)、事务拦截器: TransactionInterceptor;保存了事务属性信息,事务管理器; 他是一个 MethodInterceptor; 在目标方法执行的时候; 执行拦截器链; 事务拦截器: 1)、先获取事务相关的属性 2)、再获取...

    Spring中文帮助文档

    13.4.3. 拦截器(HandlerInterceptor) 13.5. 视图与视图解析 13.5.1. 视图解析器(ViewResolver) 13.5.2. 视图解析链 13.5.3. 重定向(Rediret)到另一个视图 13.6. 本地化解析器 13.6.1. ...

    基于SSM框架(SpringMVC + Spring + Mybatis)的图书管理系统数据库.rar

    此系统采用了目前最流行的ssm框架,其中的spingMVC框架相对于struts2框架更灵活,更安全。 2 本项目springMVC框架采用了注解映射器,使用了... 5 spring容器内部使用拦截器,以Spring AOP的方式实现事务控制管理。

    Spring API

    13.4.3. 拦截器(HandlerInterceptor) 13.5. 视图与视图解析 13.5.1. 视图解析器(ViewResolver) 13.5.2. 视图解析链 13.5.3. 重定向(Rediret)到另一个视图 13.6. 本地化解析器 13.6.1. ...

    Spring Boot项目初始化模板

    全局请求响应拦截器(记录日志) 全局异常处理器 自定义错误码 封装通用响应类 Swagger + Knife4j 接口文档 自定义权限注解 + 全局校验 全局跨域处理 长整数丢失精度解决 多环境配置 工具类: Easy Excel 表格处理 ...

    JavaSpring的商城项目前台+后台+api

    面向切面编程(AOP):Spring支持AOP,允许定义方法拦截器和切点来分离应用程序的业务逻辑和系统服务。这有助于增加模块化,并且可以用于事务管理、日志记录等。 事务管理:Spring提供了一致的事务管理接口,可以在...

    Spring-Reference_zh_CN(Spring中文参考手册)

    13.4.3. 拦截器(HandlerInterceptor) 13.5. 视图与视图解析 13.5.1. 视图解析器 13.5.2. 视图解析链 13.5.3. 重定向(Rediret)到另一个视图 13.5.3.1. RedirectView 13.5.3.2. redirect:前缀 13.5.3.3. forward:...

    Spring.3.x企业应用开发实战(完整版).part2

    15.7.2 装配拦截器 15.7.3 异常处理 15.8 小结 第5篇 测试及实战 第16章 实战型单元测试 16.1 单元测试概述 16.1.1 为什么需要单元测试 16.1.2 单元测试之误解 16.1.3 单元测试之困境 16.1.4 单元测试基本概念 16.2...

    Spring 2.0 开发参考手册

    13.4.3. 拦截器(HandlerInterceptor) 13.5. 视图与视图解析 13.5.1. 视图解析器 13.5.2. 视图解析链 13.5.3. 重定向(Rediret)到另一个视图 13.6. 本地化解析器 13.6.1. AcceptHeaderLocaleResolver 13.6.2....

    Spring2.5的新特性

    该项目提供了基于Spring的Java EE 5编程模型的实现,包括支持用于注入(injection)、拦截( interception)和事务处理(transactions)的JSR-250注解和EJB 3注解(JSR-220)。 在2.5版本中,Spring框架的核心(core)...

    spring chm文档

    13.4.3. 拦截器(HandlerInterceptor) 13.5. 视图与视图解析 13.5.1. 视图解析器 13.5.2. 视图解析链 13.5.3. 重定向(Rediret)到另一个视图 13.6. 本地化解析器 13.6.1. AcceptHeaderLocaleResolver 13.6.2....

    Spring3.x企业应用开发实战(完整版) part1

    15.7.2 装配拦截器 15.7.3 异常处理 15.8 小结 第5篇 测试及实战 第16章 实战型单元测试 16.1 单元测试概述 16.1.1 为什么需要单元测试 16.1.2 单元测试之误解 16.1.3 单元测试之困境 16.1.4 单元测试基本概念 16.2...

Global site tag (gtag.js) - Google Analytics