核心容器(spring context应用上下文) 模块

这是基本的Spring模块,提供spring 框架的基础功能,BeanFactory 是 任何以spring为基础的应用的核心。Spring 框架建立在此模块之上,它使Spring成为一个容器。

Bean 工厂是工厂模式的一个实现,提供了控制反转功能,用来把应用的配置和依赖从真正的应用代码中分离。最常用的就是org.springframework.beans.factory.xml.XmlBeanFactory ,它根据XML文件中的定义加载beans。该容器从XML 文件读取配置元数据并用它去创建一个完全配置的系统或应用。

Spring的几种注入bean的方式

1,Autowired(可以搭配@Qualifier和@Primary(@Primary指定bean注入的优先级)使用,按照名称注入),根据类型注入
2,Resource(JSR-250),不指定value默认也是按照类型注入,指定value根据名称注入
3,Inject(JSR-330的标准),根据类型注入。当不是spring框架的时候注入可以使用这种

ApplicationContext通常的实现是什么

FileSystemXmlApplicationContext :此容器从一个XML文件中加载beans的定义,XML Bean 配置文件的全路径名必须提供给它的构造函数。

ClassPathXmlApplicationContext:此容器也从一个XML文件中加载beans的定义,这里,你需要正确设置classpath因为这个容器将在classpath里找bean配置。

WebXmlApplicationContext:此容器加载一个XML文件,此文件定义了一个WEB应用的所有bean。

加载Spring容器的几种方式


1.ClassPathXmlApplicationContext (通过xml配置Spring时候使用)
它是用于读取xml配置文件,创建IOC核心容器的。但是它只能读取类路径下的配置文件

示例:ApplicationContext applicationContext= new ClassPathXmlApplicationContext(“spring.xml”);

2.AnnotationConfigApplicationContext(注解配置Spring时候使用)
它是用于读取注解创建IOC核心容器的.
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(“com.xx.jack”);

3.FileSystemXmlApplicationContext(基本不用)
它是用于读取xml配置文件,创建IOC核心容器,它读取文件的位置可以是磁盘任意位置,只要有访问权限即可(如果没有访问权限,计算机使用者都无法使用,更别说程序了.)

路径是绝对路径

  1. ApplicationContext applicationContext = new FileSystemXmlApplicationContext("E:\\idea\\public\\springdemo\\src\\main\\resources\\spring.xml");



4.EmbeddedWebApplicationContext : 这个SpringBoot在启动的时候就会用到这个上下文来,启动spring容器,new Tomcat 嵌入式tomcat

ApplicationContext applicationContext = new EmbeddedWebApplicationContext();