1.bean定义来源:从xml读取,从注解读取,抽象出接口:BeanDefinationReader
2.bean容器:读取到bean的定义后,实例化bean,把bean信息存放到容器
通过如下代码进行实例化
Class<?> type = field.getType();
Object o = type.getConstructor().newInstance();
3.实例化以后不会直接放进容器,可以对实例化的bean进行增强
接口:BeanPostProccessor
4.创建对象:工厂模式,抽象出工厂接口:BeanFactory,不同的实现去创建对象,bean工厂
高内聚,低耦合,扩展性
5.对对象进行增加:
6.BeanFactoryPostProccessor接口:创建完工厂之后,对工厂对象进行修改
7.设计模式:变化的抽接口,相同的抽模板,扩展性:每个节点抽接口,在不同的时间点,干不同的事情,在容器的不同阶段干点事
8.观察者模式,创建完对象之后调用观察者方法,去干一些事情
9.FactoryBean:工厂bean,,FactoryBean.getObject():生产某种对象的工厂实例
10.Enviroment:环境 xxx.properties,xxx.yaml,System.properties