核心理念
IoC
(反转控制)和
AOP
(面向切面编程)
IoC
:
Spring
的基础
AOP
:
Spring
中重要的功能
优点
- 基于接口编程的理念
- 提供轻量级和低侵入的编程
- 整合各个框架和技术的应用
IoC
IoC
,Inversion of Control
,控制反转。
控制反转:控制反转是一种通过描述
(在Java
中可以是XML
或者注解
)并通过第三方去产生或获取特定对象
的方式。
对象的协作关系由对象自己负责。
在 Spring
中实现控制反转的是IoC容器
实现方法是依赖注入(Dependency Injection
,DI
)
依赖注入:对象的协作关系有容器来建立。
Spring IoC容器
BeanFactory
是 Spring IoC
容器所定义的最底层接口,而 ApplicationContext
是其高级接口之一。
一般使用 ApplicationContext
作为 Spring IoC
容器。
BeanFactory接口
BeanFactory
: 它在构建核心容器时,创建对象的策略是采用延迟加载的方式,什么时候获取 id 对象了,什么时候就创建对象。
- 多例对象适用
getBean
的多个方法:
- 用于获取配置给
Spring IoC
容器的Bean
- 返回值可以是字符串也可以是Class类型
- 返回值是
Class
类型时- 因为
Class
类型可以扩展接口也可以继承父类 - 所以在一定程度上会存在使用父类类型无法准确获得实例的异常
- 因为
isSingleton
用于判断是否单例----该 Bean
在容器中时作为一个唯一单例存在的
isPrototype
用于判断是否多例----当从容器中获取 Bean
,容器就生成了一个新的实例
getAliases
获取别名
ApplicationContext接口
ApplicationContext
:它在创建核心容器时,创建对象采取的策略是采用立即加载的方式,也就是说,只要一读取完配置文件就马上创建配置文件中配置的对象
- 单例对象适用
- 开发中常采用此接口
常用实现类
- ClassPathXmlApplicationContext
- 加载类路径下的配置文件
- 要求配置文件必须在类路径下,否则加载不了
- FileSyetemXmlApplicationContext
- 加载磁盘下任意路径下的配置文件
- 必须有访问权限
- AnnotationConfigApplicationContext
- 用于读取注解创建容器的