IOC的一种简易实现(四)
2015-03-01 22:55
417 查看
上一篇介绍了注入入口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个方法。
所以依赖链就非常清晰了,
大致如图
图有点大,截两张吧= =
这里介绍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个方法。
所以依赖链就非常清晰了,
大致如图
图有点大,截两张吧= =
相关文章推荐
- IOC的一种简易实现(二)
- IOC的一种简易实现
- 实现一个简易的IoC框架(上)(此篇与Spring.NET无关,为自己手写IoC框架)
- Spring.NET学习笔记3——实现一个简易的IoC框架(练习篇)
- .NET里简易实现IoC
- Spring.NET学习笔记3——实现一个简易的IoC框架(练习篇) Level 100
- Java回调的一种简易实现
- [Delphi] 实现自动化对象的一种简易方法
- 在.NET里简易实现IoC
- 通用对象池ObjectPool的一种简易设计和实现方案
- 自己实现的一个简易Spring框架(IoC+AOP)
- 一种更为简易的tab实现
- shuffle算法的一种简易实现
- Spring.NET学习笔记3——实现一个简易的IoC框架(练习篇)
- .NET里简易实现IoC
- linux下tftp server的一种简易实现
- Spring.NET学习笔记3——实现一个简易的IoC框架(练习篇) Level 100
- Spring.NET学习笔记3——实现一个简易的IoC框架(练习篇) Level 100
- spring IOC 简易实现
- Flask:API的一种简易实现方式——MethodView