您的位置:首页 > 其它

动态代理,静态代理

2017-07-30 20:05 260 查看

四:代理

 概念:一种设计模式

1.静态代理:代理模式

代理模式:为其他对象提供一种代理以控制对这个对象的访问,代理模式在访问对象时引入一一定的程度的间接性,因为这种间接性可以附加多种用途

 

2.

实现代码:

第一布:

 


第二步:

 


第三步:

 


总结:

 


2.动态代理(Aop)

  (1)JDk

 


实现代码:

第一步:

 


第二步:

 


第三步:

 


  (2)CgLib

 

 


 


 

 

单测:

@Test
public void cglib(){

     final cglib cglib=newcglib();

    //创建代理
    //工具类
    Enhancer enhancer=newEnhancer();

    enhancer.setSuperclass(cglib.getClass());

    enhancer.setCallback(new org.springframework.cglib.proxy.InvocationHandler(){

        public Object invoke(Object o, Method method, Object[] objects)throwsThrowable{

            System.out.println("-------------------before------------");

            Object resullt=method.invoke(cglib);

            System.out.println("--------------after------------------");

            return resullt;

        }

});

    //提供一个方法
    cglib proxy=(cglib)enhancer.create();

    proxy.show();

}

3.aop的练习

类:

 

 


 




 


Xml:

<!--*********Aop金典练习*******-->
    <beanid="lei"class="cn.aop.aop1.lei"></bean>

    <beanid="before"class="cn.aop.aop1.Before"></bean>

    <beanid="After"class="cn.aop.aop1.After"></bean>

    <beanid="zengqiang"class="org.springframework.aop.framework.ProxyFactoryBean">

        <propertyname="target"ref="lei"></property>

        <propertyname="interceptorNames"value="before,After"></property>

        <!--单测时不用接口-->
        <propertyname="proxyTargetClass"value="true"/>

    </bean>

    <!
b54c
--环绕增强-->
    <beanid="jiekou"class="cn.aop.huanrao.lei"></bean>

    <beanid="huanrao1"class="cn.aop.huanrao.leiimp"></bean>

    <beanid="huanrao"class="org.springframework.aop.framework.ProxyFactoryBean">

        <propertyname="target"ref="jiekou"></property>

        <propertyname="interceptorNames"value="huanrao1"/>

    </bean>

 

单测:

 

 

 

4.顾问:

类:

 


 


 


Xml:

 


 

 

Test:

 


5.自定义:

类:

 

 


 




 

Xml:

 


6.Aspectj

 

 


 

 


 

Aspectj类:

 

 


 

 

Xml:

 


 

<aop:aspectj-autoproxy/>


Test:

 

 


 

 

 

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