核心容器(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核心容器,它读取文件的位置可以是磁盘任意位置,只要有访问权限即可(如果没有访问权限,计算机使用者都无法使用,更别说程序了.)
路径是绝对路径
ApplicationContext applicationContext = new FileSystemXmlApplicationContext("E:\\idea\\public\\springdemo\\src\\main\\resources\\spring.xml");
4.EmbeddedWebApplicationContext : 这个SpringBoot在启动的时候就会用到这个上下文来,启动spring容器,new Tomcat 嵌入式tomcat
ApplicationContext applicationContext = new EmbeddedWebApplicationContext();