1、依赖注入方式:
三种,接口注入,setter注入,构造器注入。
2、接口类BeanFactory
体现了spring为提供给用户使用的IoC容器所设定的最基本的功能规范。使用转义符“&”来获取FactoryBean本身。
getBean()、containsBean()、isSingle()、isPrototype()、isTypeMatch()、getType()、getAliases()
3、接口类ApplicationContext
是一个高级形态意义的IoC容器。
支持不同的信息源。扩展MessageSource接口,这些信息源的扩展功能可以支持国际化的实现,为开发多语言版本的应用提供服务。
访问资源。这一特性体现在对ResourceLoader和Resource的支持上,这样可以在从不同地方得到Bean定义资源。
支持应用事件。继承了接口AplocationEventPublisher,从而在上下文中引入了事件机制。
4、IoC容器的初始化过程
IoC容器的初始化时由refresh()方法启动的。这个启动包括BeanDefinition的Resource定位、载入和注册三个基本过程。
第一个过程Resource定位是指BeanDefinition的资源定位,它由ResourceLoader通过统一的Resource接口来完成。
第二个过程BeanDifinition的载入。这个载入过程是把用户定义好的Bean表示成IoC容器内部的数据结构,而这个容器内部的数据结构就是BeanDefinition。BeanDinifition就是POJO对象在IoC容器中的抽象,通过这个BeanDefinition定义的数据结构,使IoC容器能够方便的对POJO对象进行管理。
第三个过程是向IoC容器注册这些BeanDefinition。这个过程是通过调用BeanDefinitionRegistry接口的实现来完成的。这个注册过程把载入过程中解析得到的BeanDefinition向IoC容器进行注册。在IoC容器内部将BeanDefinition注入到一个HashMap中去,IoC容器就是通过这个HashMap来持有这些BeanDefinition数据的。
5、依赖注入
6、IoC容器中的Bean生命周期
·Bean实例的创建
·为Bean实例设置属性
·调用Bean的初始化方法
·应用可以通过IoC容器使用Bean
·当容器关闭时,调用Bean的销毁方法