日期:2014-05-20 浏览次数:20915 次
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(); } }