一.注解方式
打开注解<aop:scoped-proxy />
定义拦截类和注入对象
<bean id="personService" class="com.hx.sprindemo01.service.impl.PersonServiceImpl"/>
<bean id="MyInterceptor" class="com.hx.sprindemo01.service.impl.MyInterceptor"/>
定义切面
@Aspect
public class MyInterceptor {
定义切入点
@Pointcut("execution(* com.hx.sprindemo01.service.impl.PersonServiceImpl.*(..))")
public void anyMethod() {}
定义通知
@Before("anyMethod()&& args(user)")//拦截到参数值
public void dosm(String user){
System.out.println("前置函数"+user);
}
@AfterReturning(pointcut="anyMethod()",returning="result")拦截到返回值
public void doend(String result){
System.out.println("后置函数result"+result);
} @After("anyMethod()")
public void doAfter(){
System.out.println("最终通知");
}
@AfterThrowing("anyMethod()")
public void doAfterThrowing(){
System.out.println("例外通知");
}
@Around("anyMethod()")
public Object doBasicProfiling(ProceedingJoinPoint pjp)throws Throwable{
System.out.println("进入方法");
Object result = pjp.proceed();
System.out.println("退出方法");
return result;
}
}
二.配置文件方式
<aop:aspectj-autoproxy/>
<bean id="personService" class="com.hx.sprindemo01.service.impl.PersonServiceImpl"/>
<bean id="MyInterceptor2" class="com.hx.sprindemo01.service.impl.MyInterceptor2"/>
<aop:config>
<aop:aspect id="myaop" ref="MyInterceptor2">
<aop:pointcut id="mycut" expression="execution(* com.hx.sprindemo01.service.impl.PersonServiceImpl.*(..))"/>
<aop:before pointcut-ref="mycut" method="dosm"/>
<aop:after-returning pointcut-ref="mycut" method="doend"/>
<aop:after-throwing pointcut-ref="mycut" method="doAfterThrowing"/>
<aop:after pointcut-ref="mycut" method="doAfter"/>
<aop:around pointcut-ref="mycut" method="doBasicProfiling"/>
</aop:aspect>
</aop:config>
配置参数,只要修改expression内容就可以了
execution(java.lang.String com.hx.sprindemo01.service.impl.PersonServiceImpl.*(..))
execution(* com.hx.sprindemo01.service.impl.PersonServiceImpl.*(java.lang.String,..))
execution(!void com.hx.sprindemo01.service.impl.PersonServiceImpl.*(java.lang.String,..))
类中方法
execution(* com.hx.sprindemo01.service.impl.PersonServiceImpl.*(java.lang.String,..))
包下所有类
execution(* com.hx.sprindemo01.service.impl..*.*(..))
表达式常见错误:第一个星号后面加空格
分享到:
相关推荐
### Spring AOP 概念及特点详解 #### 一、AOP 概念介绍 **AOP**(Aspect-Oriented Programming,面向切面编程)是一种编程范式,旨在提高程序模块化程度的同时,简化复杂系统的开发过程。AOP 的核心思想是将横切...
### Spring AOP 几种配置方式详解 #### 一、Spring AOP 概述 Spring AOP(面向切面编程)是一种强大的编程模式,用于在应用程序中管理横切关注点,如日志记录、安全控制等。Spring 提供了多种方式来支持 AOP 的...
死磕spring源码系列-SpringAop十分钟快速入门
- **快速入门**:Spring框架为开发者提供了快速入门指南,帮助新手快速上手。通过简单的示例,开发者可以快速理解Spring的核心概念和使用方法。 **2. Spring框架介绍** - **依赖注入与控制反转**:Spring的核心...
本教程旨在引导初学者如何入门Spring框架,通过开发第一个Spring程序,逐步了解Spring的核心概念。 首先,我们要进行Spring设计环境的准备工作。这包括以下步骤: 1. 下载并解压Spring框架的压缩包,例如这里使用...
### Spring2-AOP入门实例教程知识点详解 #### 一、Spring框架概述 - **轻量级J2EE开发框架**:Spring是一个轻量级的Java应用框架,它为开发复杂的企业级应用提供了一种简化的方法。 - **发展历程**:自2002年发布...
046-spring-aop-aop思维以及aop框架和代理技术的关系.mp4 047-spring-aop-annotation快速实现.mp4 048-spring-aop-获取切点详细信息.mp4 049-spring-aop-切点表达式语法.mp4 050-spring-aop-统一切点管理.mp4 ...
046-spring-aop-aop思维以及aop框架和代理技术的关系.mp4 047-spring-aop-annotation快速实现.mp4 048-spring-aop-获取切点详细信息.mp4 049-spring-aop-切点表达式语法.mp4 050-spring-aop-统一切点管理.mp4 ...
046-spring-aop-aop思维以及aop框架和代理技术的关系.mp4 047-spring-aop-annotation快速实现.mp4 048-spring-aop-获取切点详细信息.mp4 049-spring-aop-切点表达式语法.mp4 050-spring-aop-统一切点管理.mp4 ...
046-spring-aop-aop思维以及aop框架和代理技术的关系.mp4 047-spring-aop-annotation快速实现.mp4 048-spring-aop-获取切点详细信息.mp4 049-spring-aop-切点表达式语法.mp4 050-spring-aop-统一切点管理.mp4 ...
《Spring入门经典》是一本专为初学者和有一定基础的开发者设计的教程,它通过附带的源代码帮助读者深入理解并快速掌握Spring框架。Spring是Java开发领域中最为广泛应用的轻量级框架,它的核心特性包括依赖注入、面向...
- **核心特点**:Spring 提供了依赖注入(Dependency Injection, DI)和面向切面编程(Aspect Oriented Programming, AOP)等核心功能,使开发者能够构建松耦合的应用程序。 **2. Spring 框架介绍** - **依赖注入...
在"spring入门学习-hello,world"这个主题中,我们将探索如何开始Spring的基本使用。 首先,我们需要理解Spring的核心概念——依赖注入。依赖注入是Spring的核心特性,它允许我们通过容器来管理对象的生命周期和对象...
### Spring AOP 入门详解 #### 一、Spring AOP 概述 Spring AOP (Aspect Oriented Programming) 是一种面向切面编程的技术,在Spring框架中得到了良好的支持。通过这种方式,开发者可以更加灵活地组织代码,使得...
在这个名为"springAOP-dome"的实例中,我们将探讨如何利用Spring AOP实现一个简单的日志记录功能,以作为入门学习。 首先,了解AOP的基本概念是必要的。面向切面编程是一种编程范式,旨在解决程序中的横切关注点,...
- **SpringAOP.avi**:可能是一个视频教程,详细讲解了Spring AOP的概念和实践。 - **SpringAOP.doc**:可能是文档教程,包含了详细的步骤和示例代码。 - **SpringAOP_src.rar**:源代码示例,供你参考和实践。 - **...
- **快速入门**:详细介绍了如何搭建Spring环境,以及创建第一个Spring应用的步骤。 - **参考指南**:涵盖所有核心模块的API文档,包括类、接口和方法的详细说明,是开发者日常编码的重要参考。 - **教程与示例**...
在这个入门实例中,我们将深入理解Spring AOP如何实现简单日志记录。 首先,AOP的核心概念包括切面(Aspect)、通知(Advice)、连接点(Join Point)、切入点(Pointcut)和织入(Weaving)。切面是AOP中的核心...