1、Spring MVC 和 Spring 整合的时候,SpringMVC的spring-servlet.xml文件中 配置扫描包,不要包含 service的注解,Spring的applicationContext.xml文件中 配置扫描包时,不要包含controller的注解,如下所示:
SpringMVC的spring-servlet.xmll配置:
<context:component-scan base-package="tk.hecks">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
</context:component-scan>
Spring MVC启动时的配置文件,包含组件扫描、url映射以及设置freemarker参数,让spring不扫描带有@Service注解的类。
为什么要这样设置?因为spring-servlet.xmll与applicationContext.xml不是同时加载,如果不进行这样的设置,那么,spring就会将所有带@Service注解的类都扫描到容器中,等到加载applicationContext.xml的时候,会因为容器已经存在Service类,使得cglib将不对Service进行代理,直接导致的结果就是在applicationContext 中的事务配置不起作用,发生异常时,无法对数据进行回滚。以上就是原因所在。
同样的在Spring的xml配置如下:
<context:component-scan base-package="tk.hecks">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
扫描包路径,不扫描带有@Controller注解的类。因为这些类已经随容器启动时,在spring-servlet.xml中扫描过一遍了。
来源:Heck's Blog
地址:http://www.hecks.tk/post/432/
转载时须以链接形式注明作者和原始出处及本声明,否则将追究法律责任,谢谢配合!
- 浏览: 281684 次
- 性别:
- 来自: 深圳
最新评论
-
iceblue123:
厉害,太感谢楼主了,第二种方法威武!
spring MVC 3.2中@ResponseBody返回乱码的完美解决方案 -
gaozi131:
感谢啊 折腾了一下午搞定
spring MVC 3.2中@ResponseBody返回乱码的完美解决方案 -
yenshen:
找了半天,问题终于解决了,感谢!
spring MVC 3.2中@ResponseBody返回乱码的完美解决方案 -
笑闯天下:
感觉效率不是很高啊 ,如果从数据库中取到的数据 还要去自己拼接 ...
java导出CSV文件 -
ajonjun:
http://viralpatel.net/
解决ckeditor html不显示,ckeditor 自动过滤html
相关推荐
在Spring MVC中,AOP常用于处理全局异常、事务管理和安全控制。例如,你可以创建一个异常处理切面,捕获所有控制器方法抛出的异常并统一处理: ```java @Aspect public class ExceptionHandlingAspect { @...
Spring AOP(面向切面编程)是Spring框架的重要组成部分,它提供了一种强大的方式来实现横切关注点,如日志、事务管理、性能监控等,而无需侵入业务代码。下面将详细介绍Spring AOP的注解方式和XML配置方式。 ### ...
在Spring MVC框架中,AOP(面向切面编程)是一种强大的工具,用于实现跨切面的关注点,如日志管理。本教程将详细介绍如何利用注解来配置和使用AOP来拦截Controller层的方法,以便记录执行过程中的相关信息,实现日志...
本项目“Spring MVC Mybatis Plus 实现AOP 切面日志系统”旨在提供一个基础的日志记录框架,能够自动追踪和记录应用程序的关键操作,同时支持数据持久化到数据库中,方便后期分析和问题排查。下面将详细介绍这些技术...
总结来说,Spring的IOC、AOP和MVC是其核心特性,分别解决了对象管理和解耦、关注点分离以及Web应用结构的问题。理解并熟练掌握这三个概念,对于任何Java开发者来说都至关重要,特别是在大型企业级应用开发中。通过...
- **AOP集成**:Spring MVC与Spring的面向切面编程(AOP)无缝集成,可以方便地实现事务管理和其他切面功能。 2. **Hibernate 3.6.8**: - **ORM框架**:Hibernate是一个强大的ORM工具,它将Java对象映射到数据库...
文档中会涵盖控制器定义、模型数据处理、视图解析以及各种拦截器的使用等内容,让你能够熟练地构建基于Spring MVC的Web应用。 最后,《Spring3_AOP详解》深入剖析了Spring的AOP特性。AOP是面向切面编程的缩写,它...
6. **注意事项**:AOP只会对Spring管理的Bean起作用,所以如果你的方法不在Spring容器中,AOP可能无法生效。另外,确保你的MVC控制器方法不是静态的,因为静态方法不能被AOP代理。 最后,`index.jsp`、`WEB-INF`和`...
在Spring MVC框架中,AOP(面向切面编程)是一种强大的设计模式,它允许开发者将关注点分离,比如日志、事务管理、安全检查等,从核心业务逻辑中解耦出来。下面是一个简单的Spring MVC中AOP的例子,分为配置和实现两...
另外,Spring MVC与Spring框架的其他组件无缝集成,如Spring AOP(面向切面编程)用于实现日志、事务管理等功能,Spring JDBC和MyBatis等持久层框架用于数据库操作,以及Spring Data JPA、Hibernate等ORM工具,使得...
4. **@EnableAspectJAutoProxy**:在Spring配置类中使用此注解启用AOP代理,使得Spring能自动扫描并处理切面。 5. **Spring MVC集成**:AOP可以与Spring MVC协同工作,比如在Controller层的方法调用中添加事务管理...
在本文中,我们将深入探讨如何使用Spring MVC框架中的AOP(面向切面编程)特性,结合注解方式来实现对Controller层的拦截,以便进行日志管理。这是一项非常实用的技术,可以帮助开发者追踪和记录应用程序的关键操作...
在Spring MVC框架中,AOP(面向切面编程)是一种强大的工具,用于实现跨切面的关注点,如日志、事务管理、权限控制等。当我们想通过注解方式拦截Controller层的方法时,可能会遇到一些问题。本文将详细介绍如何使用...
在Spring MVC中,AOP常用于日志记录、事务管理等横切关注点,它可以将这些功能以声明式的方式与业务代码分离。 `ojdbc14.jar` 是Oracle数据库的驱动包,如果你的应用需要连接Oracle数据库,这个jar是必不可少的。 ...
Spring框架是Java开发中不可或缺的一部分,它以其强大的依赖注入、面向切面编程(AOP)以及灵活的配置机制而闻名。XSD(XML Schema Definition)文件在Spring框架中扮演着重要角色,它们定义了XML配置文件的结构和...
在IT行业中,Spring MVC 和 MyBatis 是两个非常重要的框架,它们分别负责Web应用程序的控制器层和数据访问层。Spring MVC 提供了模型-视图-控制器架构模式的实现,而MyBatis则是一个轻量级的SQL映射框架,用于简化...
8. **源码分析**:深入理解Spring和Spring MVC的源码,有助于优化配置和解决问题。例如,了解DispatcherServlet如何调度请求,以及HandlerMapping如何找到合适的处理器。 9. **工具**:IDEA、Eclipse等集成开发环境...
Spring框架则是一个全面的企业级应用开发平台,它不仅包含Spring MVC,还提供了依赖注入(DI)、AOP(面向切面编程)、事务管理、JDBC抽象、缓存、任务调度等多个核心功能。在全注解开发中,我们可以使用@Autowired...
在Spring MVC框架中,AOP(面向切面编程)是一种强大的工具,用于实现跨切面的关注点,如日志管理、事务控制等。本项目"Spring MVC AOP通过注解方式拦截Controller等实现日志管理demo版本2"是基于注解的AOP实践,...