依赖查找的方式
- 根据Bean名称查找
- 实时查找
- 延迟查找
- 根据Bean类型查找
- 单个Bean对象
- 集合Bean对象
- 根据Bean名称+类型查找
- 根据Java注解查找
- 单个Bean对象
- 集合Bean对象
Spring Ioc 依赖来源
前言
经过demo运行结果可以发现依赖注入和依赖查找的来源并不一样.
- 自定义Bean
- 容器内建Bean对象
例子: Environment 对象
- 容器内建依赖
例子: BeanFactory 对象
Spring Ioc 配置元信息
- Bean定义配置
- 基于XML文件
- 基于Properties文件
- 基于JAVA注解
- 基于Java API
- IoC容器配置
- 基于XML文件
- 基于JAVA注解
- 基于JAVA API
- 外部化属性配置
- 基于JAVA注解
BeanFactory & ApplicationContext 谁才是Spring IoC容器
Spring 官方文档解释
The BeanFactory interface provides an advanced configuration mechanism capable of managing any type of object. ApplicationContext is a sub-interface of BeanFactory. It adds:
- Easier integration with Spring’s AOP features
- Message resource handling (for use in internationalization)
- Event publication
- Application-layer specific contexts such as the WebApplicationContext for use in web applications.
重点: BeanFactory提供了一些高级的配置和机制来管理对象(并没有指Bean,依赖来源并不只限于Bean);ApplicationContext是BeanFactory的一个子接口[1.简化了aop的整合;2.消息资源处理;3.事件发布;4.应用级别的上下文] BeanFactory是一个配置的框架,基本的功能;ApplicationContext是它的超集;
ApplicationContext 除了IoC容器角色还有哪些特性
- 面向切面(AOP)
- 配置元信息(Configuration Metadata)
- 资源管理(Resources)
- 事件(Events)
- 国际化(i18n)
- 注解(Annotations)
- Environment 抽象(Environment Abstraction)