spring面向切面编程入门实例
2016-10-26 15:56
302 查看
1、创建Audience类和Performance类。Audience类作为切面,提供了搬座位、关手机、鼓掌等方法;Performance类提供perform方法,作为切点。
2、配置xml文件
3、测试
结果:
The audience is taking their seats.
The audience is turning off their cellphones
Instrumentalist age:0
Playing null:CLAP CLAP CLAP
package advice; //切面 //听众类:按照演出的顺序,关注的一系列行为 public class Audience { public void takeSeats(){ System.out.println("The audience is taking their seats."); } public void turnOffCellPhones(){ System.out.println("The audience is turning off their cellphones"); } public void applaud(){ System.out.println("CLAP CLAP CLAP"); } public void demandRefund(){ System.out.println("Boo! We want money back"); } }
package advice; public class Performance { private String song; private int age; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getSong() { return song; } public void setSong(String song) { this.song = song; } public void perform(){ System.out.println("Instrumentalist age:"+age); System.out.print("Playing "+song+":"); } }
2、配置xml文件
<?xml version="1.0" encoding="UTF-8"?> <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" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd"> <bean id="audience" class="advice.Audience"></bean> <bean id="per" class="advice.Performance"> </bean> <aop:config> <aop:aspect ref="audience"> <aop:pointcut expression="execution( * advice.Performance.perform (..))" id="performance"/> <aop:before method="takeSeats" pointcut-ref="performance"/> <aop:before method="turnOffCellPhones" pointcut-ref="performance"/> <aop:after method="applaud" pointcut-ref="performance"/> </aop:aspect> </aop:config> </beans>
3、测试
package main; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import advice.Performance; public class MainTestAOP { public static void main(String[] args) { ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml"); Performance per = (Performance)app.getBean("per"); per.perform(); } }
结果:
The audience is taking their seats.
The audience is turning off their cellphones
Instrumentalist age:0
Playing null:CLAP CLAP CLAP
相关文章推荐
- SpringAOP入门-面向切面编程
- Spring in Action 入门之面向切面编程AOP
- spring入门(四)【面向切面编程】
- Spring in Action 入门之面向切面编程AOP
- Spring核心机制(面向切面编程AOP)
- Spring AOP面向切面编程
- CGLIB实现AOP代理的测试类,与Spring分离,加深对面向切面编程的理解
- spring面向切面编程--JDK代理和CGLIB代理
- 快速高效掌握企业级项目中的Spring面向切面编程应用,外带讲面试技巧
- Spring中ioc的面向切面编程的意思
- Spring--AOP--面向切面编程
- Spring核心机制(面向切面编程AOP)详解
- spring面向切面编程AOP(Aspect-orented programming)
- spring学习笔记7--使用spring进行面向切面的(AOP)编程(1)注解方式实现
- spring AOP面向切面编程的四种实现方式
- Spring AOP的基本原理及面向切面编程的实现
- 关于spring.net的面向切面编程 (Aspect Oriented Programming with Spring.NET)-通知(Advice)API
- SpringAOP面向切面详解(带实例)
- 反向控制和面向切面编程在Spring的应用
- Spring面向切面编程AOP