日期:2014-05-20 浏览次数:21027 次
package com.xcd.idol;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
@Aspect
public class Listenner {
@Pointcut("execution(* *.singing(..))")
public void singer(){};
@Before("singer()")
public void takeSeats(){
System.out.println("观众入座!。。");
}
@Before("singer()")
public void closeCellphone(){
System.out.println("关闭移动电话。。");
}
@AfterReturning("singer()")
public void yeah(){
System.out.println("演出精彩,观众欢呼!。。");
}
@AfterThrowing("singer()")
public void worse(){
System.out.println("演出糟糕,观众要求退款。。");
}
}
<?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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
<bean id="singer" class="com.xcd.idol.Singer"></bean>
<aop:aspectj-autoproxy />
</beans>
package com.xcd.idol;
public interface Sing {
void singing();
}
package com.xcd.idol;
public class Singer implements Sing {
public void singing() {
System.out.println("歌手唱歌!。。");
}
}
package com.xcd.test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.xcd.idol.Singer;
public class T2 {
/**
* @param args
*/
public static void main(String[] args) {
ClassPathXmlApplicationContext cac = new ClassPathXmlApplicationContext("applicationContext.xml");
Singer s = (Singer)cac.getBean("singer");
//Sing s = (Sing)cac.getBean("singer");
s.singing();
}
}