`
pavel
  • 浏览: 928012 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring入门(06)-Spring的AOP

阅读更多

一.注解方式

打开注解<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入门学习-5、AOP概念及特点.pdf

    ### Spring AOP 概念及特点详解 #### 一、AOP 概念介绍 **AOP**(Aspect-Oriented Programming,面向切面编程)是一种编程范式,旨在提高程序模块化程度的同时,简化复杂系统的开发过程。AOP 的核心思想是将横切...

    spring入门学习-6、AOP几种配置方式详解.pdf

    ### Spring AOP 几种配置方式详解 #### 一、Spring AOP 概述 Spring AOP(面向切面编程)是一种强大的编程模式,用于在应用程序中管理横切关注点,如日志记录、安全控制等。Spring 提供了多种方式来支持 AOP 的...

    死磕spring源码系列-SpringAop十分钟快速入门

    死磕spring源码系列-SpringAop十分钟快速入门

    spring-framework-reference-4.3.19.pdf

    - **快速入门**:Spring框架为开发者提供了快速入门指南,帮助新手快速上手。通过简单的示例,开发者可以快速理解Spring的核心概念和使用方法。 **2. Spring框架介绍** - **依赖注入与控制反转**:Spring的核心...

    Spring入门--PPT教程

    本教程旨在引导初学者如何入门Spring框架,通过开发第一个Spring程序,逐步了解Spring的核心概念。 首先,我们要进行Spring设计环境的准备工作。这包括以下步骤: 1. 下载并解压Spring框架的压缩包,例如这里使用...

    spring2-aop入门实例教程

    ### Spring2-AOP入门实例教程知识点详解 #### 一、Spring框架概述 - **轻量级J2EE开发框架**:Spring是一个轻量级的Java应用框架,它为开发复杂的企业级应用提供了一种简化的方法。 - **发展历程**:自2002年发布...

    2023版全新SSM框架实战精讲 视频教程 下载下载 因为太大存百度云盘3.zip

    046-spring-aop-aop思维以及aop框架和代理技术的关系.mp4 047-spring-aop-annotation快速实现.mp4 048-spring-aop-获取切点详细信息.mp4 049-spring-aop-切点表达式语法.mp4 050-spring-aop-统一切点管理.mp4 ...

    2023版全新SSM框架实战精讲 视频教程 下载下载 因为太大存百度云盘4.zip

    046-spring-aop-aop思维以及aop框架和代理技术的关系.mp4 047-spring-aop-annotation快速实现.mp4 048-spring-aop-获取切点详细信息.mp4 049-spring-aop-切点表达式语法.mp4 050-spring-aop-统一切点管理.mp4 ...

    2023版全新SSM框架实战精讲 视频教程 下载下载 因为太大存百度云盘2.zip

    046-spring-aop-aop思维以及aop框架和代理技术的关系.mp4 047-spring-aop-annotation快速实现.mp4 048-spring-aop-获取切点详细信息.mp4 049-spring-aop-切点表达式语法.mp4 050-spring-aop-统一切点管理.mp4 ...

    2023版全新SSM框架实战精讲 视频教程 下载下载 因为太大存百度云盘1.zip

    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框架。Spring是Java开发领域中最为广泛应用的轻量级框架,它的核心特性包括依赖注入、面向...

    spring-framework-reference

    - **核心特点**:Spring 提供了依赖注入(Dependency Injection, DI)和面向切面编程(Aspect Oriented Programming, AOP)等核心功能,使开发者能够构建松耦合的应用程序。 **2. Spring 框架介绍** - **依赖注入...

    spring入门学习-hello,world

    在"spring入门学习-hello,world"这个主题中,我们将探索如何开始Spring的基本使用。 首先,我们需要理解Spring的核心概念——依赖注入。依赖注入是Spring的核心特性,它允许我们通过容器来管理对象的生命周期和对象...

    Spring -Aop入门

    ### Spring AOP 入门详解 #### 一、Spring AOP 概述 Spring AOP (Aspect Oriented Programming) 是一种面向切面编程的技术,在Spring框架中得到了良好的支持。通过这种方式,开发者可以更加灵活地组织代码,使得...

    springAOP-dome

    在这个名为"springAOP-dome"的实例中,我们将探讨如何利用Spring AOP实现一个简单的日志记录功能,以作为入门学习。 首先,了解AOP的基本概念是必要的。面向切面编程是一种编程范式,旨在解决程序中的横切关注点,...

    spring AOP入门教程

    - **SpringAOP.avi**:可能是一个视频教程,详细讲解了Spring AOP的概念和实践。 - **SpringAOP.doc**:可能是文档教程,包含了详细的步骤和示例代码。 - **SpringAOP_src.rar**:源代码示例,供你参考和实践。 - **...

    spring-framework-4.0.3.RELEASE官方完整包

    - **快速入门**:详细介绍了如何搭建Spring环境,以及创建第一个Spring应用的步骤。 - **参考指南**:涵盖所有核心模块的API文档,包括类、接口和方法的详细说明,是开发者日常编码的重要参考。 - **教程与示例**...

    spring AOP入门实例

    在这个入门实例中,我们将深入理解Spring AOP如何实现简单日志记录。 首先,AOP的核心概念包括切面(Aspect)、通知(Advice)、连接点(Join Point)、切入点(Pointcut)和织入(Weaving)。切面是AOP中的核心...

Global site tag (gtag.js) - Google Analytics