`

Spring mvc中使用切面@Pointcut

 
阅读更多

系统中,使用切面来监控某些方法,当使用该方法时,做整体处理。

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时异常的处理页面,如下图所示:




 

  • 大小: 32.8 KB
  • 大小: 75.9 KB
  • 大小: 95.2 KB
  • 大小: 27.6 KB
  • 大小: 92.9 KB
  • 大小: 361 KB
  • 大小: 97.4 KB
  • 大小: 49.2 KB
  • 大小: 257.6 KB
  • 大小: 133.6 KB
分享到:
评论

相关推荐

    Spring mvc mybatis plus 实现AOP 切面日志系统

    在IT行业中,Spring MVC、MyBatis Plus以及AOP(面向切面编程)是Java Web开发中的重要组件,常用于构建高效、灵活的企业级应用。本项目“Spring MVC Mybatis Plus 实现AOP 切面日志系统”旨在提供一个基础的日志...

    Spring Mvc AOP通过注解方式拦截controller等实现日志管理

    在Spring MVC框架中,AOP(面向切面编程)是一种强大的工具,用于实现跨切面的关注点,如日志管理。本教程将详细介绍如何利用注解来配置和使用AOP来拦截Controller层的方法,以便记录执行过程中的相关信息,实现日志...

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

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

    基于注解配置和使用spring AOP(spring mvc框架)

    在SpringMVCTest项目中,你可以创建一个简单的Spring MVC应用程序,定义一些带有业务逻辑的服务方法,然后创建相应的切面来实现日志记录、异常处理或事务管理。通过运行和测试这些方法,你可以直观地看到AOP在实际...

    spring MVC + Ibatis

    Spring MVC 和 iBatis 是两个在 Java Web 开发中广泛使用的框架。Spring MVC 作为 Model-View-Controller 模式的实现,负责处理 HTTP 请求、转发数据到服务层,并将结果呈现给用户。而 iBatis 是一个轻量级的持久层...

    spring的aop切面编程实例

    3. **配置XML**: 在Spring的配置文件(如`applicationContext.xml`)中,你需要启用AOP代理并声明切面。首先,启用AOP上下文: ```xml ``` 然后,声明切面,指定其类和通知: ```xml ...

    spring3.0MVC 含jar包

    @Aspect和@Pointcut注解定义切面和切点,@Before、@After、@Around等注解定义通知行为。 八、数据绑定与验证 Spring 3.0提供了强大的数据绑定功能,可以自动将请求参数绑定到方法参数上。同时,结合JSR-303/JSR-349...

    Spring Mvc Aop

    Spring MVC AOP(面向切面编程)是Spring框架的一个重要组成部分,它允许我们在不修改源代码的情况下,通过插入额外的代码来增强或监控程序的行为。在Spring MVC中,AOP通常用于日志记录、事务管理、性能分析等场景...

    spring_aop1.rar_java aop_spring mvc 例子

    4. **@EnableAspectJAutoProxy**:在Spring配置类中使用此注解启用AOP代理,使得Spring能自动扫描并处理切面。 5. **Spring MVC集成**:AOP可以与Spring MVC协同工作,比如在Controller层的方法调用中添加事务管理...

    使用使用切面的方式记录日志springMvc + hibernate

    在代码实现上,我们需要创建自定义的切面类,继承自Spring的AspectJExpressionPointcutAdvisor或实现MethodBeforeAdvice接口,然后在Controller方法中使用@Autowired注解注入需要记录日志的服务。 总结来说,本项目...

    Spring5.1.4核心jar包,包括mvc,webmvc

    3. **AOP**:Spring的AOP模块提供了切面编程功能,可以定义切点(Pointcut)、通知(Advice)和切面(Aspect),用于跨切面的代码逻辑,如日志记录、事务管理等。 4. **Spring MVC组件**: - **DispatcherServlet*...

    Spring MVC AOP通过注解方式拦截Controller等实现日志管理demo版本2

    通过这个示例,你可以学习如何在Spring MVC项目中使用AOP注解进行日志管理,从而更好地理解和实践面向切面编程,提高代码的维护性和可扩展性。同时,这也是一个很好的起点,帮助你进一步探索Spring AOP在事务管理、...

    spring-webmvc-struts.jar aspectjweaver.jar

    当开发者需要在一个已经使用Struts的项目中引入Spring的高级特性,如依赖注入、AOP(面向切面编程)和事务管理时,就会使用这个库。它使得Struts的动作(Action)可以利用Spring的服务,并且可以利用Spring的IoC...

    spring aop注解方式、xml方式示例

    在Spring AOP中,切面是包含多个通知(advisors)的类。使用`@Aspect`注解标记切面类,例如: ```java @Aspect public class LoggingAspect { // ... } ``` #### 2. 定义通知(Advice) 通知是在特定连接点...

    spring mvc框架下的aop例子

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

    spring ioc aop mvc boot-学习笔记.docx

    Spring框架是Java开发中不可或缺的一部分,它为开发者提供了强大的依赖注入(IOC)和面向切面编程(AOP)功能,以及用于构建Web应用程序的MVC框架。Spring Boot则是基于Spring框架构建的应用程序启动器,旨在简化...

    Spring-Reference_zh_CN(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来...

    spring mvc demo

    AOP(面向切面编程)支持 Spring MVC 可以与Spring的AOP模块结合,实现如日志记录、事务管理等功能。AOP允许开发者定义横切关注点,如切点(Pointcut)和通知(Advice),从而实现代码解耦。 ### 9. RESTful API ...

    spring mvc学习笔记

    ### Spring MVC 学习笔记之 AOP 面向切面编程详解 #### 一、AOP 概念概述 面向切面编程(Aspect Oriented Programming, AOP)是一种编程范式,它允许程序员定义“切面”来封装那些与业务逻辑本身无关的功能,比如...

    spring的部分常用xsd文件,包含mvc,aop,beans,tx,task多个版本

    Spring框架是Java开发中不可或缺的一部分,它以其强大的依赖注入、面向切面编程(AOP)以及灵活的配置机制而闻名。XSD(XML Schema Definition)文件在Spring框架中扮演着重要角色,它们定义了XML配置文件的结构和...

Global site tag (gtag.js) - Google Analytics