spring回顾二

 spring架构设计

spring中使用到的设计模式

代理模式:

1.执行者,被代理人

2.对于被代理人来说,事情必须要做,但没时间做,需要人来代替

3.需要获取到被代理的人的信息


由于对反射的了解太浅,所以能理解动态代理的原理,却没法手写动态代理的实现,还有很长的路要走


参考百度:java动态代理

参考:http://blog.csdn.net/rokii/article/details/4046098

fgf

通过Porxy.newProxyInstance()

方法的三个参数:

1. 类加载器(Class Loader)

2. 需要实现的接口数组

3. InvocationHandler接口。所有动态代理类的方法调用,都会交由InvocationHandler接口实现类里的invoke()方法去处理。这是动态代理的关键所在。

去获取:动态代理对象



一个代理类:实现 InvocationHandler接口,以代理 实现某一接口的所有子类

需要实现invoke方法

invoke()方法同样有三个参数:

1. 动态代理类的引用,通常情况下不需要它。但可以使用getClass()方法,得到proxy的Class类从而取得实例的类信息,如方法列表,annotation等。

2. 方法对象的引用,代表被动态代理类调用的方法。从中可得到方法名,参数类型,返回类型等等

3. args对象数组,代表被调用方法的参数。注意基本类型(int,long)会被装箱成对象类型(Interger, Long)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值