动态代理,Spring两大核心知识BeanFactory、AOP框架!

实现功能的封装与配置:

工厂类BeanFactory负责创建目标类或者代理类的实例对象,并通过配置文件实现切换,getBean方法根据参数字符串返回一个相对应的实例对象,如果参数字符串在配置文件对应的类名不是ProxyFactoryBean,则直接返回该类的实例对象,返回该对象的getProxy方法返回的对象。

BeanFactory的构造方法接受代表配置文件的输入流对象,配置文件格式如下:

#xxx=java.util.ArayList;xxx=cn.itcast.ProxyFactoryBean;xxx.target=java.util.ArrayList;xxx.d

evice=cn.itcast.Mydvice;

 

ProxyBean充当封装生存的动态代理的工厂,需要为工厂类提供的配置信息是:目标和通知

Object obj = BeanFactory.getBean("xxx");这句话的意思是说:有一个工厂BeanFactory,是产生JavaBean的Factory,有一个getBean(String name)的方法,根据这个名字创建出JavaBean对象,这个名字是在配置文件里面配置的,假如,配置的是#xxx=java.util.ArayList;输入#xxx就等于告诉Spring要给我创建一个java.util.ArrayList实例对象,如果getBean发现不是ProxyFactoryBean这样的特殊的类,就创建这样的实例对象,else,不返回它的实例对象,而是调用ProxyFactoryBean类里面的方法,创建出代理。

动态生成类的内部代码分析:

动态生成的类实现了Collection接口(可以实现多个接口),生成的类有Collection接口中的所有方法和一个接受InvocationHandler参数的构造方法,构造方法接收一个InvocationHandler对象,为什么要定义接口,在一个地方要引用,但是不知道名字的时候就要用到接口的哦!

 

 

可生成代理和插入通告的通用方法

Spring框架原理知识就是利用的代理,核心代码实现如下:

Spring核心代码

Spring核心代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值