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

Spring AOP面向切面三种实现

 
阅读更多

一、类的所有方法都做切面。

<bean id="beforeAdvice" class="aop.BeforeAdvice"></bean>
 <bean id="afterAdvice" class="aop.AfterAdvice"></bean>
 <bean id="compareInterceptor" class="aop.CompareInterceptor"></bean>
 
 <bean id="studenttarget" class="aop.StudentImpl"></bean>
 
 <bean id="student" class="org.springframework.aop.framework.ProxyFactoryBean">
  <property name="proxyInterfaces">
   <value>aop.Student</value>
  </property>
  <property name="interceptorNames">
   <list>
    <value>beforeAdvice</value>
    <value>afterAdvice</value>
    <value>compareInterceptor</value>
   </list>
  </property>
  <property name="target">
   <ref bean="studenttarget" />
  </property>
 </bean>

二、用Spring配置实现方法的切面,带传参数。

<bean id="userService" class="spring.aop.impl.UserServiceImpl" />
 <bean id="aspect" class="spring.aop.impl.UserAspectImpl" />
 <aop:config>
  <aop:pointcut id="pointcut"
   expression="execution(* spring.aop.impl.UserServiceImpl.getUser(..))" />
  <aop:aspect ref="aspect">
   <aop:before pointcut-ref="pointcut" method="before" />
   <aop:after-returning pointcut-ref="pointcut"
    method="afterReturn" />
   <aop:after pointcut-ref="pointcut" method="after" />
  </aop:aspect>
 </aop:config>

 <bean id="aspectParameter" class="spring.aop.impl.UserAspectParameterImpl" />
 <aop:config>
  <aop:pointcut id="pointcutParameter"
   expression="execution(* spring.aop.impl.UserServiceImpl.getUser(spring.aop.entry.User)) and args(u)" />
  <aop:aspect ref="aspectParameter">
   <aop:before pointcut-ref="pointcutParameter" method="before"  arg-names="u"/>
   <aop:after-returning pointcut-ref="pointcutParameter" method="afterReturn"  arg-names="u"/>
   <aop:after pointcut-ref="pointcutParameter" method="after"  arg-names="u"/>
  </aop:aspect>
 </aop:config>

三、通过@Aspect注释方式实现切面,带传参数。

四、main方法运行

AopTest.java

AspectTest.java

SpringAopTest.java

注意:下载以后有帮助的同学给点好评!我工作时间找了半天的!

分享到:
评论

相关推荐

    spring aop 自定义切面示例

    在Spring AOP(面向切面编程)中,自定义切面是实现业务逻辑解耦、增强代码可维护性的重要手段。AspectJ是一个强大的面向切面的编程库,它提供了与Spring AOP集成的能力,使我们可以编写更为灵活和模块化的代码。...

    Spring-aop面向切面编程实例

    面向切面编程(Aspect-Oriented Programming,AOP)是Spring框架的核心特性之一,它提供了一种优雅的方式来处理系统的横切关注点,如日志、事务管理、性能监控和权限控制等。在Spring中,AOP主要通过代理模式实现,...

    Spring Aop面向切面的java代码

    总结一下,Spring AOP提供了JDK动态代理和CGLIB代理两种方式来实现面向切面编程,通过这两种方式,我们可以方便地在不修改原始业务代码的前提下,添加额外的功能,如日志、事务控制等。`SprigAopJdk`和`...

    Java Spring AOP 面向切面编程的4种实现

    动态代理是一种在运行时创建代理对象的技术,通常用于实现AOP(面向切面编程)中的横切关注点,比如日志、性能监控等。以下是几种常见的动态代理实现: JDK动态代理: Java通过java.lang.reflect.Proxy类提供了一种...

    JAVA Spring AOP面向切面编程笔记

    JAVA Spring AOP面向切面编程笔记

    Spring面向切面编程AOP

    面向切面编程(AOP,Aspect Oriented Programming)是Spring框架中的一个重要特性,它提供了一种模块化和声明式的方式来处理程序中的横切关注点,如日志、事务管理、安全控制等。AOP的核心概念包括切面、通知、连接...

    spring-aop面向切面系统日志案例

    这个“spring-aop面向切面系统日志案例”是一个实践教程,旨在教你如何利用Spring AOP实现系统的日志记录。 首先,理解Spring AOP的基本概念至关重要。AOP是一种编程范式,它允许程序员定义“切面”,这些切面可以...

    SpringAop面向切片

    **Spring AOP 面向切面编程详解** 在Java世界中,Spring框架以其强大的功能和易用性闻名,其中一个核心特性就是面向切面编程(Aspect-Oriented Programming,简称AOP)。AOP是为了解决传统面向对象编程中横切关注点...

    AOP面向切面编程总结

    ### AOP面向切面编程详解 #### 一、AOP概览 AOP(Aspect-Oriented Programming,面向切面编程)是一种编程思想和技术,它作为OOP(面向对象编程)的一种补充,主要解决了OOP在处理横切关注点方面的不足。在传统的...

    Spring4AOP 面向切面编程实例之方法拦截

    Spring4AOP 面向切面编程实例之方法拦截实例 一下利用Spring4的最后一个版本Spring4.3.9,实现简单的方法拦截实例。 Eclipse 建立java工程,导入必要的jar包,工程目录如下:

    spring AOP切面编程

    Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的重要组成部分,它扩展了传统的面向对象编程,使得开发者可以方便地实现横切关注点,如日志、事务管理、性能监控等。在Spring中,AOP通过代理...

    spring aop切面拦截指定类和方法实现流程日志跟踪

    为了解决这一问题,可以利用Spring框架中的AOP(Aspect Oriented Programming,面向切面编程)技术来实现。 #### 二、Spring AOP 概述 Spring AOP 是Spring框架提供的一种实现AOP的方法。通过AOP,开发者可以在不...

    spring切面AOP所使用的jar包

    总之,Spring AOP通过aspectjweaver.jar和aspectjrt.jar这两个关键库,实现了面向切面编程的功能,极大地提高了代码的可维护性和模块化程度。在实际开发中,理解并掌握AOP原理和应用,对于提升软件设计的灵活性和可...

    SpringAOP切面编程依赖jar包.rar

    学习Spring开发的AOP面向切面编程时所需要的jar包,包括com.springsource.net.sf.cglib-2.2.0.jar com.springsource.org.aopalliance-1.0.0.jar com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar

    spring4 AOP 面向切面编程@Aspect

    在Spring框架中,AOP(面向切面编程)是一种强大的设计模式,它允许开发者将关注点从业务逻辑中分离出来,比如日志记录、事务管理、权限检查等。`@Aspect`是Spring AOP的核心注解,用于定义一个切面。下面我们将详细...

    AOP_使用spring框架进行面向切面编程

    面向切面编程(AOP)是一种编程范式,它旨在减少代码中的重复部分,特别是那些与核心业务逻辑无关但又必须处理的交叉关注点,如日志、事务管理、安全控制等。Spring框架是Java领域中实现AOP的常用工具,它通过提供...

    spring aop demo 两种实现方式

    Spring AOP(面向切面编程)是Spring框架的重要组成部分,它允许程序员在不修改源代码的情况下,对应用程序的特定部分(如方法调用)进行拦截和处理。这为日志、事务管理、性能监控等提供了方便。本示例提供了一种...

    Spring使用AOP的三个jar包

    在Java世界中,Spring框架以其强大的功能和灵活性深受开发者喜爱,尤其在面向切面编程(AOP)方面,Spring提供了非常全面的支持。AOP是一种编程范式,它允许程序员定义“切面”,这些切面可以封装关注点,如日志、...

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

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

Global site tag (gtag.js) - Google Analytics