IOC的一种简易实现(四)

上一篇介绍了注入入口AutoWire类,以及一部分IOCController的实现。

这里介绍IOCController7个核心方法。


void invokeSetter(Object target, Method m)  //调用setter

Object construct(Constructor<?> con, Object[] parameterValues)  //根据构造函数和参数进行实例化

Object constructBean(String beanname)  //构造一个bean

Object constructObject(Class<?> cls)  //构造一个类的对象

Object get(Class<?> cls)  //根据类型获取一个实例

Object getBean(String beanname)  //获取一个bean

Object getObject(Class<?> cls)  //根据类型获取一个类的对象

以及第二篇介绍的4类handler(TypeAnnotationHandler,SetterAnnotationHandler,ParamAnnotationHandler,ConstructorFilter)


一组依赖关系:


AutoWire-->invokeSetter(Object ,Method)-->SetterAnnotationHandler

get(Class)-->TypeAnnotationHandler

getBean(String)

-->constructBean(String)

-->constructObject(Class)

-->ConstructorFilter & -->ParamAnnotationHandler

-->construct(Constructor,Object[])


getObject(Class)

-->constructObject(Class)


每个Handler都会调用IOCController中的这7个方法。


所以依赖链就非常清晰了,

大致如图

图有点大,截两张吧= =

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值