springIoc手写篇

2020-04-06  本文已影响0人  zjp999988

1.springIoc祥设

1.根据benName获取bean实例需要建立一种映射关系;

2.把解析出来的bean定义信息放入到map集合中,都存放到beanfatory中

  2.1 解析出来的属性信息放入到属性集合中,value是有类型的,封装到不同类型的对象中,如果是对象类型直接beanName即可,如果是普通类型需要做转换clasType;

3.获取时根据bean名称反射创建实例;

1.使用简单工程创建bean实例并最中放置在map中;

达成的效果

//看下配置文件包含了引用和字符串类型

//1ioc 初始化第一步解析bean标签到beanDefination集合和maBtis解析步骤是差不多的;

//看下解析成beanDefination的过程

可以看到根据bean语意若果属性只是value的话封装成typeStringValue;

如果是Ref的话封装成runtimeBeanref类型以便于属性赋值操作

最后将解析的beandefination放到beafactorymap集合总;

//在看下bean实例创建过程

先从单例bean中获取,不存在就创建bean

//根据beandefNation创建bean实例并设置属性,也添加了几个扩展点

beanfactoryAwar 和beanPostProcessor(这个方法可以返回代理对象);

//beanPostProcessor返回的是代理过后的对象,所以这个是一个很好的扩展点aop也是基于这个接口方法;

//基于beanpostProcess实现耗时统计

上一篇 下一篇

猜你喜欢

热点阅读