1.定义接口Perform
package com.show; /** * Created by kenneth on 2017/4/6. */ public interface Perform { void sing(); }
2.接口Perform的实现类Boy
package com.show; /** * Created by kenneth on 2017/4/6. */ public class Boy implements Perform { @Override public void sing() { System.out.println("男孩在唱歌"); } }
3.定义通知PerformHelper
package com.show; /** * Created by kenneth on 2017/4/6. */ public class PerformHelper { public void beforePerform() { System.out.println("表演之前要整理衣服"); } public void afterPerform() { System.out.println("表演之后要行礼"); } }
4.Spring配置文件
<?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.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <!--目标对象--> <bean id="boy" class="com.show.Boy"/> <!--切面--> <bean id="performHelper" class="com.show.PerformHelper"/> <!--配置切入点--> <aop:config> <aop:pointcut id="pointcut" expression="execution(public * *..Perform.sing(..))"/> <aop:aspect ref="performHelper"> <aop:before method="beforePerform" pointcut-ref="pointcut"/> <aop:after method="afterPerform" pointcut-ref="pointcut"/> </aop:aspect> </aop:config> </beans>
5.测试类
package com.show; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** * Created by kenneth on 2017/4/6. */ public class Test { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml"); Perform performer = (Perform) context.getBean("boy"); performer.sing(); } }
6.测试结果
四月 06, 2017 2:02:38 下午 org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@533ddba: startup date [Thu Apr 06 14:02:38 CST 2017]; root of context hierarchy
四月 06, 2017 2:02:38 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [ApplicationContext.xml]
表演之前要整理衣服
男孩在唱歌
表演之后要行礼