动态代理,静态代理
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:
相关文章推荐
- 代理简析(静态代理与动态代理)
- 动态代理与静态代理区别
- 动态代理与静态代理的区别
- 静态代理与动态代理
- 静态代理与动态代理
- java中的三种对象代理 静态代理动态代理及cglib代理
- JAVA学习篇--静态代理VS动态代理
- Java 代理模式:静态代理、JDK 动态代理和 Cglib 动态代理的区别
- 插件化开发---静态、动态代理
- Spring AOP 静态代理与动态代理
- 静态代理和动态代理
- 静态代理和动态代理
- Java代理之静态代理与动态代理(一)
- Spring 静态代理、jdk与cglib动态代理 spring aop+ioc
- 设计模式——代理模式(理解静态代理和动态代理+代码)
- JAVA中的静态代理、动态代理以及CGLIB动态代理总结
- Java的静态代理、动态代理,CGLib的动态代理,使用动态代理基于AOP的AspectJ框架—深入探究
- JDK静态代理及动态代理
- 【设计模式之二:代理模式】代理模式(静态代理VS动态代理)
- Java之代理(jdk静态代理,jdk动态代理,cglib动态代理,aop,aspectj)