SpringMVC + Spring + MyBatis 学习笔记:SpringMVC和Spring一同工作的时候,AOP事务管理不起作用的解决方法

系统:WIN8.1

数据库:Oracle 11GR2

开发工具:MyEclipse 8.6

框架:Spring3.2.9、SpringMVC3.2.9、MyBatis3.2.8



SpringMVC 的 springmvc.xml文件中 配置扫描包,不要包含 service的注解,Spring 的 配置文件配置包扫描时,不要包含controller的注解,如下所示:

Spring MVC的配置文件:

<context:component-scan base-package="包路径">

  <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>

</context:component-scan> 

Spring 的配置文件:

1 <context:component-scan base-package="包路径">
2
3  <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
4
5 </context:component-scan>

Spring MVC启动时的配置文件,包含组件扫描、url映射以及设置freemarker参数,让spring不扫描带有@Service注解的类。

Why?

因为 springmvc.xml 与 applicationContext.xml 不是同时加载,如果不进行这样的设置,那么 Spring就会将所有带@Service注解的类都扫描到容器中,等到加载 applicationContext.xml的时候,会因为容器已经存在Service类,使得cglib将不对Service进行代理,直接导致的结果就是在 applicationContext 中的事务配置不起作用,发生异常时,无法对数据进行回滚。

时间: 2024-08-19 04:08:07

SpringMVC + Spring + MyBatis 学习笔记:SpringMVC和Spring一同工作的时候,AOP事务管理不起作用的解决方法的相关文章

SpringMVC,MyBatis学习笔记

<深入分析Java Web技术内幕>笔记 ------------SpringMVC----------- 1.SpringMVC配置:在web.xml的<servlet>中配置DispatcherServlet,再在<init-parm>中配置name为contextConfigLocation的具体配置文件classpath:spring-mvc.xml.2.在spring-mvc.xml中配置:三个核心组件的bean配置.处理器适配:HandlerAdapter,

SpringMVC + Spring + MyBatis 学习笔记:提交数据遭遇基础类型和日期类型报400错误解决方法

系统:WIN7 数据库:mysql 开发工具:Eclipse 框架:Spring3.2.9.SpringMVC3.2.9.MyBatis3.2.8 使用SpringMVC开发的时候,页面如果有日期格式的数据,后台接受也是java.util.Date,则报告400错误 . 在controller使用对象来接收前台页面的date数据类型时报400错误 下面是解决方案的演示示例: 这个是实体类,里面createDate就是java.util.Date类型 1 import java.util.Date

SpringMVC + Spring + MyBatis 学习笔记:提交数据遭遇日期格式报400错误解决方法

系统:WIN8.1 数据库:Oracle 11GR2 开发工具:MyEclipse 8.6 框架:Spring3.2.9.SpringMVC3.2.9.MyBatis3.2.8 使用SpringMVC开发的时候,页面如果有日期格式的数据,后台接受也是java.util.Date,则报告400错误 .下面是解决方案的演示示例: 这个是实体类,里面createDate就是java.util.Date类型 1 import java.util.Date; 2 3 public class User {

SpringMVC + Spring + MyBatis 学习笔记:遭遇order by 排序问题

系统:WIN8.1 数据库:Oracle 11GR2 开发工具:MyEclipse 8.6 框架:Spring3.2.9.SpringMVC3.2.9.MyBatis3.2.8 用MyBatis写排序的时候字段很多,于是想当然的就把需要排序的字段用String类型扔到了配置文件里面.但是却没有起到效果.后来查阅资料,发现应该使用$符号. #符号将传入的数据都当做一个字符串,会对数据增加一个引号,如 order by #userid# , userid对应的值是10001,解析后就是 order 

SpringMVC + Spring + MyBatis 学习笔记:为MyBatis增加打印SQL功能 (最简化配置)

系统:WIN8.1 数据库:Oracle 11GR2 开发工具:MyEclipse 8.6 框架:Spring3.2.9.SpringMVC3.2.9.MyBatis3.2.8 1.以下jar包拷贝到lib目录下 2.在src目录下增加log4j.properties文件,内容如下 1 # Global logging configuration 2 log4j.rootLogger=ERROR, stdout 3 # log4j.logger后面跟着的是项目dao包路径,里面全部都是dao层的

SpringMVC + Spring + MyBatis 学习笔记:在类和方法上都使用RequestMapping如何访问

系统:WIN8.1 数据库:Oracle 11GR2 开发工具:MyEclipse 8.6 框架:Spring3.2.9.SpringMVC3.2.9.MyBatis3.2.8 先看代码: @RequestMapping(value="manager") @Controller("managerController") public class ManagerController { /** * 后台用户登录 * @param request * @param em

Spring Boot 学习笔记一(Spring Boot 介绍)

一.Spring Boot 介绍 Spring Boot 是由Pivotal团队提供的一种全新的微服务框架,其设计目的是用来简化Spring应用的初始化搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板话的配置.通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者. 二.Spring Boot的特点 创建独立的Spring应用程序. 嵌入的Tomcat,无需部署WAR文件.

Spring boot 学习笔记 - Hello world

Spring boot 学习笔记 - Hello world spring boot介绍: spring-boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者. Hello world 通过官网https://start.spring.io/

springmvc+mybatis学习笔记(汇总)

springmvc+mybatis学习笔记(汇总) 标签 : springmvc mybaits springmvcmybatis学习笔记汇总 目录 联系作者 笔记分为两大部分:mybatis和springmvc mybatis springmvc 笔记内容主要是mybatis和springmvc的一些基本概念和使用方法,涉及概念介绍.环境搭建.编程细节.运行调试等方面. 这套笔记整体偏入门和应用,适合快速上手,对底层实现和机理并未做过多分析.我后续会研读spring源码,并把学习的收获写成博客