spring动态代理

2、动态代理:

不用写代理类,虚拟机根据真实对象实现的接口产生一个类,通过类实例化一个动态代理,在实例化动态代理时将真实对象及装备注入到动态代理中,向客户端公开的是动态代理,当客户端调用动态代理方法时,动态代理根据类的反射得到真实对象的Method,调用装备的invoke方法,将动态代理、 Method、方法参数传与装备的invoke方法,invoke方法在唤起method方法前或后做一些处理。     

             1、产生动态代理的类:

                            java.lang.refect.Proxy

             2、装备必须实现InvocationHandler接口实现invoke方法

 

 

 springAOP:

         springAOP核心也是动态代理,spring采用三种方式实现代理功能。1、java的动态代理方式。2、CGlib方式。3、Aspectj方式。

         默认模式

         spring使用java动态代理和CGlib的混合方式提供服务,即若对象实现了接口则spring自动采用java动态代理进行支持,否则则采用CGlib方式进行支持;也可以强制制定使用cglib方式代理,在配置文件中进行配置。(http://my.oschina.net/coldlemon/blog/178586)

posted @ 2018-03-08 15:37  跨境电商杂货铺  阅读(260)  评论(0编辑  收藏  举报