`
ngcsnow
  • 浏览: 33780 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

spring结合spring mvc下用注解式事务不生效

阅读更多

      项目开发过程中遇到spring注解事务不生效的情况,项目使用的是spring mvc、spring、mybatis 。bean都是用spring的注解管理的,事务也是用的注解式。经过几番折腾发现问题,特此记录解决方法如下:

 

      一、在applicationContext.xml文件中扫描bean时排除Controller。

 

<context:component-scan base-package="com.newmode.fcm">
		<context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/>
		<context:include-filter type="annotation" expression="org.springframework.stereotype.Component"/>
		<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
	</context:component-scan>

      二、在springMvc.xml文件中扫描Controller时排除Service。

<context:component-scan base-package="com.newmode.fcm.web">
		<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
		<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
	</context:component-scan>

 

      三、在要事务控制的方法上加上@Transactional注解。

 

 

      运行,nice,完美控制,原因如下:
      因为spring是由org.springframework.web.context.ContextLoaderListener加载,spring mvc是由org.springframework.web.servlet.DispatcherServlet加载,互不干扰,如果spring mvc中不排除@Service他就会一并把@Service扫描装配进来,而该@Service理应由父容器进行初始化以保证事务的一致性,故这里要进行如上处理。 

 

 

分享到:
评论

相关推荐

    spring3 struts2 Mybatis3 组件注解 事务注解 实例

    Spring的`&lt;tx:annotation-driven&gt;`标签启用注解驱动的事务管理,使`@Transactional`生效。Struts2的配置文件需要指定Action类及其结果映射,而Mybatis3的配置则包括数据源、SqlSessionFactory和Mapper扫描。 在业务...

    spring MVC配置详解

    在使用 Spring MVC 之前,需要引入相应的 jar 包,包括 Spring 2.5.6 和 Hibernate 3.2.0。Spring 2.5.6 需要引入的 jar 包有 spring.jar、spring-webmvc.jar、commons-logging.jar、cglib-nodep-2.1_3.jar 等。...

    spring MVC AOP注解方式如何拦截controller 例子

    在Spring MVC框架中,AOP(面向切面编程)是一种强大的工具,用于实现跨切面的关注点,如日志、事务管理、权限控制等。当我们想通过注解方式拦截Controller层的方法时,可能会遇到一些问题。本文将详细介绍如何使用...

    spring+mybatis+spring-mvc+maven 项目框架.zip

    Spring-MVC通过DispatcherServlet进行中央调度,使用ModelAndView对象封装模型数据和视图信息,实现了松耦合的MVC设计模式。 四、Maven Maven是Apache基金会开发的项目管理工具,它通过项目对象模型(POM)文件来...

    spring-webmvc-struts.jar aspectjweaver.jar

    总的来说,`spring-webmvc-struts.jar`和`aspectjweaver.jar`的结合使用,能够帮助开发者构建高效、模块化且易于维护的Java Web应用,同时利用Spring的强大功能和AspectJ的灵活性。在开发过程中,理解这两个库的工作...

    spring-ext-handler-mapping.rar_ext_spring ext_spring mvc

    不过,随着Spring MVC的发展,这种方式已经被注解驱动的Controller所取代,但理解这种旧的控制器模式对于了解Spring MVC的历史和演变是有帮助的。 5. **handler-mappings.xml** 这是Spring的配置文件,可能包含了...

    spring4注解

    该注解通常配合`&lt;context:component-scan&gt;`使用,以便Spring能够自动检测和实例化标记了此注解的类。 - **@Repository**: 主要用于数据访问层(DAO层)的类,它可以提供额外的功能,如异常转换等。 - **@Service**: ...

    Spring+mvc+mybatis Mapper xml自动加载

    总的来说,"Spring+mvc+mybatis Mapper xml自动加载"是一项旨在提升开发效率的技术实践,通过合理的配置和扩展,可以在不重启服务器的情况下实时应用Mapper XML文件的更改,从而加快迭代速度,提高开发团队的工作...

    Spring MVC 学习笔记 十二 PDF/Excel格式输出

    例如,使用`&lt;mvc:annotation-driven&gt;`元素可以启用注解驱动的开发,使得@Controller、@RequestMapping等注解生效。 接下来,详细讲解Spring MVC的核心组件: 1. **Controller**:通过@Controller注解标识的类,...

    spring mvc框架下的aop例子

    在Spring MVC框架中,AOP(面向切面编程)是一种强大的设计模式,它允许开发者将关注点分离,比如日志、事务管理、安全检查等,从核心业务逻辑中解耦出来。下面是一个简单的Spring MVC中AOP的例子,分为配置和实现两...

    spring_mvc入门及精通

    在这个例子中,配置文件是 `/WEB-INF/spring-mvc/*.xml`,这意味着所有在 `spring-mvc` 目录下的 XML 文件都将被加载。 2. **contextConfigLocation**:这个初始化参数指定了 Spring MVC 的配置文件位置。默认情况...

    25个经典的Spring面试问题包含答案

    Profile允许根据不同的环境(如开发、测试、生产)来选择启用哪些配置,使用`@Profile`注解可以指定Bean在哪个环境下生效。 19. **Spring如何实现RESTful服务?** 可以通过使用@RestController注解的控制器类,...

    spring3.0MVC

    但是,为了使这些注解生效,必须在 DispatcherServlet 的配置中包含对应的 `HandlerMapping` 和 `HandlerAdapter`。 DispatcherServlet 默认支持 `DefaultAnnotationHandlerMapping` 和 `...

    maven-spring-mybatis小型项目开发环境(1)maven spring mvc

    MyBatis与Spring结合使用时,可以实现声明式事务管理,提供更强大的数据访问能力。在项目中,MyBatis的配置文件通常会定义数据源、SqlSessionFactory以及具体的Mapper接口和XML配置文件,这些文件可能在`src`目录下...

    10 扩展之Spring MVC中如何实现国际化i18n慕课专栏1

    可以使用XML配置或注解方式,Spring MVC中通常推荐使用注解方式。`basename`属性指定了locale目录下以`messages`开头的文件名。 在Controller中,我们需要添加处理Locale的请求响应方法。通过检测`Accept-Language`...

    spring_part2

    在文件"spring_06_transaction"中,我们可能看到关于Spring的声明式事务管理的详细解释,包括如何使用@Transactional注解,以及如何在XML配置文件中定义事务切面。这些内容将帮助我们理解如何在不修改业务代码的情况...

    spring mvc

    Spring MVC 是一个基于Java的轻量级Web...要使注解生效,必须有正确的`HandlerMapping`和`HandlerAdapter`配置。通过自定义这些组件,可以实现更复杂的路由策略、添加拦截器以增强功能,并根据项目需求调整处理流程。

    Spring2.5 注解介绍(3.0通用)

    首先,要使注解生效,我们需要在Spring配置中注册注解处理器。有三种方式来实现: 1. **显式注册**: 在XML配置中添加`&lt;bean&gt;`标签,如`&lt;bean class="org.springframework.beans.factory.annotation....

    Spring+SpringMVC配置事务管理无效原因及解决办法详解

    编程式事务管理需要手动编写事务管理代码,而声明式事务管理使用注解或 XML 配置来管理事务。 Spring+SpringMVC 配置事务管理无效原因 在使用 Spring 和 SpringMVC 配置事务管理时,可能会遇到事务管理无效的问题...

Global site tag (gtag.js) - Google Analytics