AOP实现方式3——通过<aop:config>来配置(纯POJO切面)

来源:互联网 发布:mysql 查看梭镖 编辑:程序博客网 时间:2024/06/06 07:35

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]
表演之前要整理衣服
男孩在唱歌
表演之后要行礼



0 0
原创粉丝点击