希望对所有Controller 的请求参数都统一做一个日志记录,如果没有controller都需要手工去写的化,不能保证格式统一也不能保证不会被遗漏! 如果在配置文件中仅仅配置:
<aop:aspectj-autoproxy />
则会发现AOP的配置对controller 根本不起作用! 是因为 proxy-target-class 默认是false ,无法对未实现接口的类进行代理,而controller ,但是如果将proxy-target-class="true"又会因为 这个配置导致启动报错!因
<aop:aspectj-autoproxy proxy-target-class="true"> <aop:include name="controllerAspect"/> </aop:aspectj-autoproxy> <bean id="controllerAspect" class="com.david.aop.ControllerAspect"/>
/** * * @author zhangwei_david * @version $Id: ControllerAspect.java, v 0.1 2014年12月15日 上午11:14:06 zhangwei_david Exp $ */ @Aspect public class ControllerAspect { private static final Logger logger = LogManager.getLogger(ControllerAspect.class); @Before("execution(* com.david.web.controller..*(..))") public void beforeInterceptor(JoinPoint joinPoint) { LogUtils.info(logger, "{0} 被调用,请求参数是{1}", joinPoint.getSignature().getName(), joinPoint.getArgs()); } }
结果:
2014-12-15 11:42:39 [ http-bio-8080-exec-5:6681 ] - [ DEBUG ] Last-Modified value for [/WebApp/locale.htm] is: -1 2014-12-15 11:42:39 [ http-bio-8080-exec-5:6686 ] - [ DEBUG ] Invoking request handler method: public java.lang.String com.david.web.controller.WelcomeController.locale() 2014-12-15 11:42:39 [ http-bio-8080-exec-5:6687 ] - [ INFO ] locale 被调用,请求参数是[Ljava.lang.Object;@1546c85
相关推荐
在Spring MVC框架中,AOP(面向切面编程)是一种强大的工具,用于实现跨切面的关注点,如日志管理。本教程将详细介绍如何利用注解来配置和使用AOP来拦截Controller层的方法,以便记录执行过程中的相关信息,实现日志...
本文将详细介绍如何使用AspectJ注解在Spring MVC中实现AOP拦截Controller方法,并提供一个具体的例子。 首先,我们需要了解Spring AOP的基础概念。AOP允许我们定义“切面”,这些切面包含了业务逻辑中横切关注点的...
本文将深入探讨Spring与Spring MVC的整合配置,并结合标签"源码"和"工具"来解析相关的技术细节。 首先,Spring框架的核心特性包括依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented ...
1. **AOP代理**:Spring MVC中的切面编程用于实现如日志记录、事务管理等功能。 2. **依赖注入(DI)**:通过IOC容器管理Bean及其依赖,实现松耦合。 3. **模型绑定**:自动将请求参数与控制器方法参数进行映射。 4....
- **AOP集成**:Spring MVC与Spring的面向切面编程(AOP)无缝集成,可以方便地实现事务管理和其他切面功能。 2. **Hibernate 3.6.8**: - **ORM框架**:Hibernate是一个强大的ORM工具,它将Java对象映射到数据库...
另外,Spring MVC与Spring框架的其他组件无缝集成,如Spring AOP(面向切面编程)用于实现日志、事务管理等功能,Spring JDBC和MyBatis等持久层框架用于数据库操作,以及Spring Data JPA、Hibernate等ORM工具,使得...
总的来说,Spring+Spring MVC+MyBatis的配置涉及到多个层次的配置和集成,包括Spring的IoC和AOP、Spring MVC的MVC架构以及MyBatis的数据库操作。这些组件共同构成了一个功能完备的Java Web应用程序。在实际开发中,...
4. `<mvc:annotation-driven>`:这个元素表明Spring MVC应支持注解驱动的控制器,比如@Controller注解的类,以及自动配置数据绑定、异常处理等功能。 5. `<bean>`:可以手动定义Bean,例如数据访问层的DAO、Service...
- 配置Spring MVC:在Spring的配置文件中,我们需要定义DispatcherServlet、视图解析器和处理器映射器等。 - 集成MyBatis:引入MyBatis的依赖,配置SqlSessionFactoryBean,创建MapperScannerConfigurer扫描Mapper...
这篇博客“spring MVC配置,六步简单搞定”可能介绍了如何快速且有效地设置Spring MVC项目。下面将详细阐述Spring MVC配置的六个关键步骤,以及与之相关的知识点。 **步骤1:引入Spring MVC依赖** 在开始Spring MVC...
Spring MVC通过注解如@Controller、@RequestMapping等,可以让开发者在方法级别定义请求映射,简化了配置。 Spring框架的核心是依赖注入(Dependency Injection,DI),它允许组件之间通过接口进行协作,而不是硬...
本项目"Spring MVC AOP通过注解方式拦截Controller等实现日志管理demo版本2"是基于注解的AOP实践,旨在帮助开发者了解如何利用AOP来记录应用程序中的关键操作日志。以下是关于这个主题的详细解释: 1. **Spring AOP...
这个案例可能包括了Spring MVC的Controller,Spring的配置文件,Mybatis的Mapper和XML文件,以及数据库相关的配置。通过分析这些文件,初学者可以了解SSM框架的基本结构和使用方法,例如请求处理、服务层调用、...
Spring框架是Java开发中不可或缺的一部分,它以模块化的方式提供了许多功能,如依赖注入(IOC)、面向切面编程(AOP)以及Model-View-Controller(MVC)架构模式。在本实例中,我们将深入探讨这三个核心概念以及它们...
首先,我们需要创建Spring MVC的配置文件,比如`spring-mvc.xml`,其中包含视图解析器、模型-视图对象、以及Spring MVC的其他相关配置。 - **引入MyBatis** 在Spring配置文件中引入MyBatis的配置,例如`mybatis-...
3. `org.springframework.web.servlet-3.0.2.RELEASE.jar`:这是 Spring MVC 的核心模块,提供了控制器(Controller)、模型视图(ModelAndView)以及调度器Servlet(DispatcherServlet)等关键组件。...
3. **配置Spring**:编写Spring的配置文件,定义bean,包括数据源、SessionFactory(用于Hibernate)、事务管理器以及Spring MVC的相关配置。这里需要配置DAO和Service层的bean,使它们能够利用Hibernate操作数据库...
4. **配置Spring MVC**:创建Spring MVC的配置文件,如`servlet-context.xml`,配置DispatcherServlet、视图解析器(如InternalResourceViewResolver)、拦截器等。 5. **配置MyBatis**:编写MyBatis的全局配置文件...
5. **Spring MVC集成**:AOP可以与Spring MVC协同工作,比如在Controller层的方法调用中添加事务管理和日志记录。 6. **Spring MVC基础知识**:虽然主要讲解AOP,但实例可能也会涵盖Spring MVC的基础,如...