java 静态代理模式学习(1)
2017-09-07 09:44
585 查看
http://blog.csdn.net/hejingyuan6/article/details/36203505
java 的代理模式为aop提供了,动态记录方法执行的理论基础,简单的配置即可记录方法执行前后中,控制方法的执行,现在看一下静态代理:
静态代理:目标接口提供了,很多方法,现在提供一个实现类和代理类,他们都去继承目标接口,代理类为实现类作一个封装,为实现类的方法提供方法执行前,后的方法或者判断方法执行的条件,来记录和控制方法的执行
代码如下:
提供一个接口
实现类
代理类
测试
结果:
静态代理接口增加方法就的重新写代理类,很不方便,动态代理解决了这个问题,接下来看一下动态代理。
java 的代理模式为aop提供了,动态记录方法执行的理论基础,简单的配置即可记录方法执行前后中,控制方法的执行,现在看一下静态代理:
静态代理:目标接口提供了,很多方法,现在提供一个实现类和代理类,他们都去继承目标接口,代理类为实现类作一个封装,为实现类的方法提供方法执行前,后的方法或者判断方法执行的条件,来记录和控制方法的执行
代码如下:
提供一个接口
package com.lzkj.kedacollege.aop; public interface Sleep { public void sleepTime(); }
实现类
package com.lzkj.kedacollege.aop; public class Cat implements Sleep{ public void sleepTime() { System.out.println("cat is sleeping"); } }
代理类
package com.lzkj.kedacollege.aop; import java.lang.reflect.Method; import org.springframework.aop.AfterReturningAdvice; import org.springframework.aop.MethodBeforeAdvice; public class SleepReady implements MethodBeforeAdvice,AfterReturningAdvice{ public void afterReturning(Object arg0, Method arg1, Object[] arg2, Object arg3) throws Throwable { // TODO Auto-generated method stub System.out.println("eat food"); } public void before(Method arg0, Object[] arg1, Object arg2) throws Throwable { // TODO Auto-generated method stub System.out.println("jieshou"); } }
测试
package com.lzkj.kedacollege.aop; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class AopTest { public static void main(String[] args){ ApplicationContext appCtx = new ClassPathXmlApplicationContext("spring-context.xml"); Sleep sleeper = (Sleep)appCtx.getBean("cat"); sleeper.sleepTime(); } }
结果:
jieshou cat is sleeping eat food
静态代理接口增加方法就的重新写代理类,很不方便,动态代理解决了这个问题,接下来看一下动态代理。
相关文章推荐
- Java设计模式学习06——静态代理与动态代理
- java设计模式学习笔记3 代理模式-静态代理
- Java设计模式学习06——静态代理与动态代理
- JAVA学习--反射之静态代理模式
- 【java学习笔记s】设计模式--静态代理
- java 设计模式学习笔记六 proxy代理模式
- java 代理模式(静态代理+动态代理)
- java 静态代理 动态代理深入学习
- java 设计模式之四-代理模式 java静态代理和动态代理
- 学习:java设计模式—动态代理模式
- 静态代理(JAVA设计模式)
- 代理角色java设计模式之静态代理详细介绍
- Java动态代理学习2——静态代理和动态代理
- Java设计模式---静态代理
- 黑马程序员java学习第六天,static静态的使用及单例设计模式
- 代理设计模式之(静态代理+Java自身提供的动态代理机制)
- java 静态代理与动态代理(代理模式)
- 使用自动生成java文件和自动编译的静态代理模式-马士兵设计模式教程
- java设计模式之静态代理模式
- java设计模式之静态代理