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

Spring的AOP应用实例

2013-08-17 20:22 381 查看
Spring的AOP应用实例
 

view plaincopy to clipboardprint?

 

public class WelcomeAdvice implements MethodBeforeAdvice{  

    public void before(Method method, Object[] objects, Object o) throws Throwable {  

        System.out.println("Welcome,这是MethodBeforeAdvice的before方法!");  

    }  



public class WelcomeAdvice implements MethodBeforeAdvice{

    public void before(Method method, Object[] objects, Object o) throws Throwable {

        System.out.println("Welcome,这是MethodBeforeAdvice的before方法!");

    }

} view plaincopy to clipboardprint?

   

public class ThankYouAdvice implements AfterReturningAdvice{  

    public void afterReturning(Object o, Method method, Object[] objects, Object o1) throws Throwable {  

        System.out.println("Thank you, come again!  这是 AfterReturningAdvice的afterReturning方法!");  

    }  



public class ThankYouAdvice implements AfterReturningAdvice{

    public void afterReturning(Object o, Method method, Object[] objects, Object o1) throws Throwable {

        System.out.println("Thank you, come again!  这是 AfterReturningAdvice的afterReturning方法!");

    }

}view plaincopy to clipboardprint?

public interface IAopTest {  

    void test();  

}  

 

 

public class AopTest implements IAopTest{  

    public void test() {  

        System.out.println("Aop Testing.......");  

    }  



public interface IAopTest {

    void test();

}

public class AopTest implements IAopTest{

    public void test() {

        System.out.println("Aop Testing.......");

    }

} view plaincopy to clipboardprint?

public class TestResultImpl {  

    private IAopTest aopTest;  

 

    public void setAopTest(IAopTest aopTest) {  

        this.aopTest = aopTest;  

    }  

 

    public void test() {  

        aopTest.test();  

    }  



public class TestResultImpl {

    private IAopTest aopTest;

    public void setAopTest(IAopTest aopTest) {

        this.aopTest = aopTest;

    }

    public void test() {

        aopTest.test();

    }

} view plaincopy to clipboardprint?

<?xml version="1.0" encoding="UTF-8"?> 

<beans xmlns="http://www.springframework.org/schema/beans

       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance

       xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd"> 
    <!--创建目标代理对象--> 

    <bean id="aopTest" class="aop.AopTest"/> 

    <!--创建前置通知--> 

    <bean id="welcomeAdvice" class="aop.WelcomeAdvice"/> 

    <!--创建后置通知--> 

    <bean id="thankYouAdvice" class="aop.ThankYouAdvice"/> 

    <!--创建代理bean开始--> 

    <bean id="proxyFactoryBean" class="org.springframework.aop.framework.ProxyFactoryBean"> 

        <property name="proxyInterfaces" value="aop.IAopTest"/> 

        <property name="interceptorNames"> 

            <list> 

                <value>welcomeAdvice</value> 

                <value>thankYouAdvice</value> 

            </list> 

        </property> 

 

        <property name="target" ref="aopTest"/> 

    </bean> 

 

    <bean id="testResult" class="aop.TestResultImpl"> 

        <property name="aopTest" ref="proxyFactoryBean"/> 

    </bean> 

</beans> 

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

       xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--创建目标代理对象-->

    <bean id="aopTest" class="aop.AopTest"/>

    <!--创建前置通知-->

    <bean id="welcomeAdvice" class="aop.WelcomeAdvice"/>

    <!--创建后置通知-->

    <bean id="thankYouAdvice" class="aop.ThankYouAdvice"/>

    <!--创建代理bean开始-->

    <bean id="proxyFactoryBean" class="org.springframework.aop.framework.ProxyFactoryBean">

        <property name="proxyInterfaces" value="aop.IAopTest"/>

        <property name="interceptorNames">

            <list>

                <value>welcomeAdvice</value>

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