Spring 之spring容器
spring容器创建
Spring 创建的对象全部放在spring容器中,所谓容器就是集合可以存放对象,而spring容器采用工厂模式,可以获取集合中的对象。所以spring容器就是一个工厂类,可以获取集合中的对象。
创建容器两种方法
方法一:
在web.xml配置ContextLoaderListener:上下文加载监听器。监听到web容器创建时,创建spring容器,并加载spring配置文件applicationContext.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring/applicationContext*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.com.itheima.web.context.ContextLoaderListener</listener-class>
</listener>
方法二:(很少用,有时会在测试中用)
通过new创建spring容器
//创建spring容器
BeanFactory beanFactory = new ClassPathXmlApplicationContext("applicationContext.xml");
//从spring容器中获取对象
User user = (User)beanFactory.getBean("user");
可以看得出,Springr容器就是一个工厂类对象
BeanFactory是Spring容器的顶层接口,ApplicationContext是BeanFactory子接口BeanFactory 和 ApplicationContext 的区别: 创建对象的时间点不一样 ApplicationContext:只要一读取配置文件,默认情况下就会创建对象。
BeanFactory:什么使用什么时候创建对象。
ApplicationContext接口的实现类:
- ClassPathXmlApplicationContext: 它是从类的根路径下加载配置文件 推荐使用这种
- FileSystemXmlApplicationContext: 它是从磁盘路径上加载配置文件,配置文件可以在磁盘的任意位置。
- AnnotationConfigApplicationContext:
当我们使用注解配置容器对象时,需要使用此类来创建 spring 容器。它用来读取注解。