Spring容器
在基于Spring的应用中,应用对象都是生存于Spring Container容器中的。Spring负责创建对象,装配对象,和配置对象并管理他们的整个生命周期。
Spring容器不只有一个,Spring自带了多个容器实现,可以归为2类:
- bean factory: 最简单的容器,提供基本的DI支持
- 应用上下文:给予bean factory构建,提供应用框架级别的服务
bean factory对于大部分的应用来说都太低级了,因此很少使用。相比而言,应用上下文使用更普遍。
应用上下文
Spring自带了多种应用上下文,常用的有:
- AnnotationConfigApplicationContext:从一个或多个基于java的配置类中加载Spring应用上下文
- AnnotationConfigWebApplicationContext:从一个或多个基于java的配置类中加载Spring Web应用上下文
- ClassPathXmlApplicationContext:从类路径下的一个或多个xml配置文件中加载上下文定义,把应用上下文的定义文件作为类资源
- FileSystemXmlApplicationContext:从文件系统下的一个或多个xml配置文件中加载上下文定义
- XmlWebApplicationContext:从web应用下的一个或多个xml配置文件中加载上下文定义
例子:
加载FileSystemXmlApplicationContext:(在指定路径下查找文件)
ApplicationContext context = new FileSystemXmlApplicationContext("c:/context.xml");
加载ClassPathXmlApplicationContext:(在类路径下(包括jar文件)查找文件)
ApplicationContext context = new ClassPathXmlApplicationContext("context.xml");
加载AnnotationConfigApplicationContext:(类文件)
ApplicationContext context = new AnnotationConfigApplicationContext(com.xxx.example.class);
bean的生命周期