系统中,使用切面来监控某些方法,当使用该方法时,做整体处理。
1、定义切面的类,该类继承固定方法HandlerInterceptorAdapter,同时,该类需使用@Aspect注解:如下图所示:
2、使用@Pointcut注解需要监控的方法,且使用表达式来标识方法路径,如下图所示:
注意,该注解在一个方法上,该方法是第三步中@Around的value值。
在@Pointcut后面的表达式中,
第一个*代表所有的返回值类型
第二个com.chrhc.project.sc.ewmcode.service.impl.ScEwmnrxpzServiceImpl.updateMain表示匹配的类的方法,同样可以com.chrhc.project.sc.ewmcode.service.impl.ScEwmnrxpzServiceImpl.*,如此则是ScEwmnrxpzServiceImpl类里的所有方法。
最后,(..)代表所有的参数。
常见切入点表达式的例子:
-
任意公共方法的执行:
execution(public * *(..))
-
任何一个以“set”开始的方法的执行:
execution(* set*(..))
-
AccountService
接口的任意方法的执行:execution(* com.xyz.service.AccountService.*(..))
-
定义在service包里的任意方法的执行:
execution(* com.xyz.service.*.*(..))
-
定义在service包或者子包里的任意类的任意方法的执行:
execution(* com.xyz.service..*.*(..))
3、实现executesave方法,在该方法里实现要做的处理,不过,该方法需要注解,@Around(value = "updateMain()"),使用@Around,注解的参数为需要监控的方法。如下图所示:
如此,则切面功能配置完成。
若需要在监控时发现不符合规定,需做特殊处理,比如抛出异常等特殊操作时,需配置处理类,
4、定义异常,在executesave方法中,遇到不符合规定情况时,抛出异常,故定义异常等。如下图所示:
5、 定义的异常,需在配置文件中做如下配置。在配置org.springframework.web.servlet.handler.SimpleMappingExceptionResolver处,配置拦截到InterceptorException异常时的处理方式,
首先需要定义异常处理类,并配置,如下图所示:
此配置定义了在出现异常时,处理异常的类为MyExceptionHandler。
6、定义MyExceptionHandler类,在该类中,处理异常,如下图所示:
7、对于异常的处理,也可以如下方式处理,
配置异常处理类exceptionResolver,如下图所示:
7、其中,interceptorExc时异常的处理页面,如下图所示:
相关推荐
在IT行业中,Spring MVC、MyBatis Plus以及AOP(面向切面编程)是Java Web开发中的重要组件,常用于构建高效、灵活的企业级应用。本项目“Spring MVC Mybatis Plus 实现AOP 切面日志系统”旨在提供一个基础的日志...
在Spring MVC框架中,AOP(面向切面编程)是一种强大的工具,用于实现跨切面的关注点,如日志管理。本教程将详细介绍如何利用注解来配置和使用AOP来拦截Controller层的方法,以便记录执行过程中的相关信息,实现日志...
在Spring MVC框架中,AOP(面向切面编程)是一种强大的工具,用于实现跨切面的关注点,如日志、事务管理、权限控制等。当我们想通过注解方式拦截Controller层的方法时,可能会遇到一些问题。本文将详细介绍如何使用...
在SpringMVCTest项目中,你可以创建一个简单的Spring MVC应用程序,定义一些带有业务逻辑的服务方法,然后创建相应的切面来实现日志记录、异常处理或事务管理。通过运行和测试这些方法,你可以直观地看到AOP在实际...
Spring MVC 和 iBatis 是两个在 Java Web 开发中广泛使用的框架。Spring MVC 作为 Model-View-Controller 模式的实现,负责处理 HTTP 请求、转发数据到服务层,并将结果呈现给用户。而 iBatis 是一个轻量级的持久层...
3. **配置XML**: 在Spring的配置文件(如`applicationContext.xml`)中,你需要启用AOP代理并声明切面。首先,启用AOP上下文: ```xml ``` 然后,声明切面,指定其类和通知: ```xml ...
@Aspect和@Pointcut注解定义切面和切点,@Before、@After、@Around等注解定义通知行为。 八、数据绑定与验证 Spring 3.0提供了强大的数据绑定功能,可以自动将请求参数绑定到方法参数上。同时,结合JSR-303/JSR-349...
Spring MVC AOP(面向切面编程)是Spring框架的一个重要组成部分,它允许我们在不修改源代码的情况下,通过插入额外的代码来增强或监控程序的行为。在Spring MVC中,AOP通常用于日志记录、事务管理、性能分析等场景...
4. **@EnableAspectJAutoProxy**:在Spring配置类中使用此注解启用AOP代理,使得Spring能自动扫描并处理切面。 5. **Spring MVC集成**:AOP可以与Spring MVC协同工作,比如在Controller层的方法调用中添加事务管理...
在代码实现上,我们需要创建自定义的切面类,继承自Spring的AspectJExpressionPointcutAdvisor或实现MethodBeforeAdvice接口,然后在Controller方法中使用@Autowired注解注入需要记录日志的服务。 总结来说,本项目...
3. **AOP**:Spring的AOP模块提供了切面编程功能,可以定义切点(Pointcut)、通知(Advice)和切面(Aspect),用于跨切面的代码逻辑,如日志记录、事务管理等。 4. **Spring MVC组件**: - **DispatcherServlet*...
通过这个示例,你可以学习如何在Spring MVC项目中使用AOP注解进行日志管理,从而更好地理解和实践面向切面编程,提高代码的维护性和可扩展性。同时,这也是一个很好的起点,帮助你进一步探索Spring AOP在事务管理、...
当开发者需要在一个已经使用Struts的项目中引入Spring的高级特性,如依赖注入、AOP(面向切面编程)和事务管理时,就会使用这个库。它使得Struts的动作(Action)可以利用Spring的服务,并且可以利用Spring的IoC...
在Spring AOP中,切面是包含多个通知(advisors)的类。使用`@Aspect`注解标记切面类,例如: ```java @Aspect public class LoggingAspect { // ... } ``` #### 2. 定义通知(Advice) 通知是在特定连接点...
在Spring MVC框架中,AOP(面向切面编程)是一种强大的设计模式,它允许开发者将关注点分离,比如日志、事务管理、安全检查等,从核心业务逻辑中解耦出来。下面是一个简单的Spring MVC中AOP的例子,分为配置和实现两...
Spring框架是Java开发中不可或缺的一部分,它为开发者提供了强大的依赖注入(IOC)和面向切面编程(AOP)功能,以及用于构建Web应用程序的MVC框架。Spring Boot则是基于Spring框架构建的应用程序启动器,旨在简化...
6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1. @Configurable object的单元测试 6.8.1.2. 多application context情况下的处理 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来...
AOP(面向切面编程)支持 Spring MVC 可以与Spring的AOP模块结合,实现如日志记录、事务管理等功能。AOP允许开发者定义横切关注点,如切点(Pointcut)和通知(Advice),从而实现代码解耦。 ### 9. RESTful API ...
### Spring MVC 学习笔记之 AOP 面向切面编程详解 #### 一、AOP 概念概述 面向切面编程(Aspect Oriented Programming, AOP)是一种编程范式,它允许程序员定义“切面”来封装那些与业务逻辑本身无关的功能,比如...
Spring框架是Java开发中不可或缺的一部分,它以其强大的依赖注入、面向切面编程(AOP)以及灵活的配置机制而闻名。XSD(XML Schema Definition)文件在Spring框架中扮演着重要角色,它们定义了XML配置文件的结构和...