动态代理与AOP
来源:互联网 发布:hdmi能传输数据么 编辑:程序博客网 时间:2024/05/19 04:03
interface Human {void info();void fly();}// 被代理类class SuperMan implements Human {public void info() {System.out.println("我是超人!我怕谁!");}public void fly() {System.out.println("I believe I can fly!");}}class HumanUtil {public void method1() {System.out.println("=======方法一=======");}public void method2() {System.out.println("=======方法二=======");}}class MyInvocationHandler implements InvocationHandler {Object obj;// 被代理类对象的声明public void setObject(Object obj) {this.obj = obj;}@Overridepublic Object invoke(Object proxy, Method method, Object[] args)throws Throwable {HumanUtil h = new HumanUtil();h.method1();Object returnVal = method.invoke(obj, args);h.method2();return returnVal;}}class MyProxy {// 动态的创建一个代理类的对象public static Object getProxyInstance(Object obj) {MyInvocationHandler handler = new MyInvocationHandler();handler.setObject(obj);return Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj.getClass().getInterfaces(), handler);}}public class TestAOP {public static void main(String[] args) {SuperMan man = new SuperMan();//创建一个被代理类的对象Object obj = MyProxy.getProxyInstance(man);//返回一个代理类的对象Human hu = (Human)obj;hu.info();//通过代理类的对象调用重写的抽象方法System.out.println();hu.fly();//*********NikeClothFactory nike = new NikeClothFactory();Object obj1 = MyProxy.getProxyInstance(nike);ClothFactory cloth = (ClothFactory)obj1;cloth.productCloth();}}
//静态代理模式//接口interface ClothFactory{void productCloth();}//被代理类class NikeClothFactory implements ClothFactory{@Overridepublic void productCloth() {System.out.println("Nike工厂生产一批衣服");}}//代理类class ProxyFactory implements ClothFactory{ClothFactory cf;//创建代理类的对象时,实际传入一个被代理类的对象public ProxyFactory(ClothFactory cf){this.cf = cf;}@Overridepublic void productCloth() {System.out.println("代理类开始执行,收代理费$1000");cf.productCloth();}}public class TestClothProduct {public static void main(String[] args) {NikeClothFactory nike = new NikeClothFactory();//创建被代理类的对象ProxyFactory proxy = new ProxyFactory(nike);//创建代理类的对象proxy.productCloth();}}
0 0
- 动态代理与AOP
- 动态代理与AOP
- 动态代理与AOP
- 动态代理与spring AOP
- Spring AOP与动态代理
- springDI与Aop动态代理
- java动态代理与AOP
- 反射 动态代理与AOP
- 代理模式、动态代理与AOP
- Spring AOP 静态代理与动态代理
- Aop 代理 动态代理
- 黑马程序员---------动态代理类与AOP
- Spring AOP与Java动态代理
- Java动态代理与AOP概念
- Spring - 动态代理 与 AOP 理解
- JDK动态代理与Spring AOP
- 【Java进阶-Java动态代理与AOP】
- 动态代理与AOP(1)
- 正则表达式_概要
- table 自适应高度的解决办法
- Android中的Service
- #include<algorithm>
- fastboot命令基本用法
- 动态代理与AOP
- B树和hash的区别与联系
- ArcGIS js FeatureLayer加载失败原因
- 推箱子,推推推(课程设计)
- Yii2.0高级框架数据库增删改查的一些操作(转)
- 利用Android的Camera类实现3D旋转功能
- @QueryRequestParam:参数注解。
- 关于SQL中的时间问题
- 一个java程序员的ubuntu系统环境