您的位置:首页 > 编程语言 > Java开发

spring面向切面编程入门实例

2016-10-26 15:56 302 查看
1、创建Audience类和Performance类。Audience类作为切面,提供了搬座位、关手机、鼓掌等方法;Performance类提供perform方法,作为切点。

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: