面向切面编程,代码如下:
@Aspect
public class ControllorAspectj {
@Pointcut("within(com.spring.test.action.*)")
public void doManagerActionClass() {
}
@Before("execution(public * * (..))")
public void getUser(JoinPoint jp) throws IOException {
System.out.println("任意公共方法的执行");
}
@Pointcut("execution(* do*(..))")
public void doMethod(){
}
@Before(value="com.spring.test.common.ControllorAspectj.doMethod() && target(bean)",argNames="bean")
public void beforeDo(JoinPoint jp,Object bean) throws Exception {
String sourceLocation=jp.getKind();
Signature signature=jp.getSignature();
MethodSignature methodSignature = (MethodSignature) signature;
Method method = methodSignature.getMethod();
method.invoke(jp.getTarget(),jp.getArgs());
System.out.println("方法名:"+method.getName());
System.out.println("任意以do开头的方法"+sourceLocation);
}
@Pointcut("within(com.spring.test..*)")
public void before3(){
System.out.println("test包以及他的子包");
}
@AfterThrowing(pointcut="com.spring.test.common.ControllorAspectj.before3()",throwing="ex")
public void afterThrows(JoinPoint jp,Throwable ex) {
ex.printStackTrace();
System.out.println("test包以及他的子包抛出的异常"+ex.getMessage());
}
@AfterReturning("this(com.spring.test.IBaseAction)")
public void afterReturn(){
System.out.println("after return,实现了IBaseAction");
}
}
注:任何通知方法可以将第一个参数定义为org.aspectj.lang.JoinPoint类型 (环绕通知需要定义第一个参数为ProceedingJoinPoint类型, 它是 JoinPoint 的一个子类)。
以上注意几点:
1、该类声明为@Aspect;
2、在spring配置文件中声明:
<aop:aspectj-autoproxy proxy-target-class="true"/>
<bean id="controllerAspect"
class="com.spring.test.common.ControllorAspectj"/>
分享到:
相关推荐
在Spring框架中,Aspect是面向切面编程(AOP)的核心概念,它允许我们将关注点分离,比如日志、事务管理等,从主业务逻辑中解耦出来。本篇将详细介绍两种配置Spring Aspect的方式:XML配置和注解配置。 首先,我们来...
Spring+Aspect所需jars,包括Spring-aop、Spring-Aspect、aopalliance-1.0、Aspect Jweaver-1.8.7等包,个人学习时从各地凑出来的,送上资源免得各位大大们继续跟我一样还得花时间从各地一点一点地去凑这几个包。
《Spring AspectJ 3.0版本详解》 在Java开发领域,Spring框架以其强大的功能和灵活性赢得了广大开发者的心。而在Spring框架中,AspectJ是一个重要的组成部分,它为开发者提供了面向切面编程(AOP)的能力。本文将...
1. **Spring AOP**:AOP(Aspect-Oriented Programming,面向切面编程)是Spring框架的一个重要特性,它允许开发者定义“切面”,这些切面可以包含业务逻辑的各个部分,如日志、事务管理等。Spring AOP提供了一种...
Spring 2.5 是 Spring 框架的一个重要版本,它在面向切面编程(Aspect-Oriented Programming,AOP)方面提供了强大的支持。面向切面编程是一种编程范式,旨在将关注点分离,使代码更加模块化,尤其是处理那些跨越多...
Spring 基于 Aspect 注解的增强实现 Spring 框架提供了基于 Aspect 注解的增强实现,这种实现方式可以帮助开发者更方便地实现面向切面编程(AOP)。在本篇文章中,我们将详细介绍 Spring 基于 Aspect 注解的增强...
### Spring中的Aspect与Advisor区别详解 #### 一、引言 在Spring框架中,面向切面编程(AOP)是一种非常强大的技术,它允许开发者将横切关注点(如日志记录、安全性检查等)从业务逻辑中分离出来。本文旨在深入...
`@Aspect`是Spring AOP的核心注解,用于定义一个切面。下面我们将详细探讨Spring 4中的AOP和`@Aspect`的使用。 首先,了解AOP的基本概念。AOP通过“切面”来封装横切关注点,切面是跨越多个对象的行为或责任的模块...
Spring AOP,全称Spring Aspect-Oriented Programming(面向切面编程),是Spring框架的重要组成部分。它提供了一种模块化和声明式的方式来处理系统中的交叉关注点,如日志、事务管理、性能监控等,从而使得业务代码...
Spring AOP,全称Spring Aspect-Oriented Programming(面向切面编程),是Spring框架的重要组成部分,它提供了一种模块化和声明式的方式来处理系统中的交叉关注点,如日志、事务管理、性能监控等。在Spring AOP中,...
Spring AOP,全称为Spring Aspect-Oriented Programming(面向切面编程),是Spring框架的重要组成部分。它提供了一种在不修改源代码的情况下,通过代理模式实现横切关注点(如日志、事务管理、安全性等)的方法。在...
Spring AOP,全称为Spring Aspect-Oriented Programming(面向切面编程),是Spring框架的重要组成部分。它提供了一种模块化和声明式的方式来处理系统中的交叉关注点,如日志、事务管理、性能监控等,使得代码更加...
使用@Aspect注解的类将被SpringBoot框架识别为方面类,并将其织入到Spring容器中。 三、@annotation的使用 @annotation是AspectJ提供的一种annotation,用于描述方面的注解。使用@annotation可以在方法上添加注解...
Spring aop 配置 Spring aspect 配置 Spring advisor 配置 Spring pointcut 配置
整理的Spring AOP Aspect切入点语法,老师整理的,2018.08.01最新版
《Spring 2.5面向切面编程》一书深入探讨了Spring框架在企业级应用开发中的强大功能,尤其是其在面向切面编程(Aspect-Oriented Programming,简称AOP)领域的应用。Spring AOP是Spring框架的一个核心组件,它允许...
Aspect是AOP的核心概念,它封装了关注点,使得我们可以将这些关注点与业务逻辑解耦。在Spring Boot中,AOP可以通过Spring的AspectJ库来实现。 首先,我们来看看标题提到的"Interceptor",这是Spring MVC中的一个...
本篇将深入探讨如何使用Spring AOP来记录操作日志,并通过自定义Aspect和注解实现这一功能。 首先,我们要理解Spring AOP的基本概念。AOP是面向对象编程(OOP)的一种补充,它专注于处理那些横向的、与业务逻辑无关...