Spring学习之第一个AOP程序(2)

package com.log; public class HelloWorldAspect { public void beforeAdvice() { System.out.println("---before advice---"); } public void afterAdvice() { System.out.println("---after advice---"); } }

(4)在XML中进行配置

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans "> <!-- 配置目标类 --> <bean/> <!-- 配置切面 --> <bean/> <aop:config> <aop:pointcut expression="execution(* com.log..*.*(..))"/> <!-- aop:aspect的ref引用切面支持类的方法 --> <aop:aspect ref="aspect"> <aop:before pointcut-ref="pointcut" method="beforeAdvice"/> <aop:after pointcut-ref="pointcut" method="afterAdvice"/> </aop:aspect> </aop:config> </beans>

  切入点使用<aop:config>标签下的<aop:pointcut>配置, expression属性用于定义切入点模式,默认是AspectJ语法,“ execution(* cn.javass..*.*(..))”表示匹配cn.javass包及子包下的任何方法执行。关于expression属性如何配置请点击:expression配置 

  切面使用<aop:config>标签下的<aop:aspect>标签配置,其中“ ref”用来引用切面支持类的方法。
  前置通知使用<aop:aspect>标签下的<aop:before>标签来定义, pointcut-ref属性用于引用切入点Bean, 而method用来引用切面通知实现类中的方法,该方法就是通知实现,即在目标类方法执行之前调用的方法。
  最终通知使用<aop:aspect>标签下的<aop:after >标签来定义,切入点除了使用pointcut-ref属性来引用已经存在的切入点,也可以使用pointcut属性来定义,如pointcut="execution(* cn.javass..*.*(..))", method属性同样是指定通知实现,即在目标类方法执行之后调用的方法。

(5)测试运行

package com.log; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class AopTest { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("aopBean.xml"); IHelloWorldService hello = context.getBean("helloWorldService", IHelloWorldService.class); hello.sayHello(); HelloWorldAspect advice = context.getBean("aspect", HelloWorldAspect.class); advice.beforeAdvice(); } }

(6)输出结果

Spring学习之第一个AOP程序

Spring中如何配置Hibernate事务

Struts2整合Spring方法及原理

基于 Spring 设计并实现 RESTful Web Services

Spring-3.2.4 + Quartz-2.2.0集成实例

使用 Spring 进行单元测试

运用Spring注解实现Netty服务器端UDP应用程序

Spring 3.x 企业应用开发实战 PDF完整高清扫描版+源代码

Spring 的详细介绍请点这里
Spring 的下载地址请点这里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/635a1d5691b97db3824a46706c9860c6.html