Spring的核心容器
Spring框架的主要功能是通过其核心容器来实现的。Spring提供了2种核心容器:BeanFactory、ApplicationContext。
BeanFactory
BeanFactory是一个管理Bean的工厂,主要负责初始化各种Bean,并调用它们的声明周期方法。
BeanFactory由BeanFactory接口定义。BeanFactory接口的常用实现类:XmlBeanFactory类。
创建一个BeanFactory的实例:
   Resource resource=new FileSystemResource("D:/test/src/applicationContext.xml");
    BeanFactory beanFactory=new XmlBeanFactory(resource);
创建一个Spring容器,并使用xml配置文件来初始化容器。参数是Resource类型,指定容器的配置文件。
因为要使用绝对路径,不方便程序移植,不推荐使用。
ApplicationContext
ApplicationContext是BeanFactory的子接口,被称为应用上下文。除了有BeanFactory的全部功能,还提供了对国际化、资源访问、事件传播等的支持,经常用这个。
ApplicationContext接口有2个常用的实现类:
- ClassPathXmlApplicationContext类 //使用相对路径,最常用,推荐
 - FileSystemXmlApplicationContext类 //使用绝对路径,不推荐
 
创建示例:
   ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
   FileSystemXmlApplicationContext applicationContext=new FileSystemXmlApplicationContext("D:/test/src/applicationContext.xml");
BeanFactory和ApplicationContext都是通过xml配置文件加载Bean的,二者的主要区别:
- BeanFactory:如果Bean的某个属性没有注入,使用getBean()方法时会抛出异常
 - ApplicationContext:在创建容器时会自检,检查Bean所依赖的属性是否注入。
 
一般都是优先选择使用ApplicationContext,资源较少时才考虑使用BeanFactory。
创建Spring容器后,就可以获取容器中的Bean了:
- Object getBean(String name) //通过Bean的id或者name来获取Bean,返回值是Object类型,需要强制类型转换
 - <T> getBean(String name, Class<T> requiredType) //第二个参数指定该Bean的类,这样返回值就是该类型的,不必转换类型。
 
Spring的核心容器的更多相关文章
- Spring之核心容器bean
		
摘要:Spring的核心容器实现了Ioc,其目 的是提供一种无侵入式的框架.在本文中,首先讲解了Spring的基础bean的相关知识,然后介绍了Spring是如何对bean进行管理的. 在Spring ...
 - 【Spring】 Spring的核心容器
		
Spring的核心容器 文章目录 Spring的核心容器 BeanFactory ApplicationContext 1.通过ClassPathXmlApplicationContext创建 2.通 ...
 - spring的核心容器ApplicationContext
		
//bean.xml配置文件 <?xml version="1.0" encoding="UTF-8"?><beans xmlns=" ...
 - Spring学习总结(6)——Spring之核心容器bean
		
一.Bean的基础知识 1.在xml配置文件中,bean的标识(id 和 name) id:指定在benafactory中管理该bean的唯一的标识.name可用来唯一标识bean 或给bean起别名 ...
 - 初识Spring——Spring核心容器
		
一. IOC和DI基础 IOC-Inversion of Control,译为控制反转,是一种遵循依赖倒置原则的代码设计思想. 所谓依赖倒置,就是把原本的高层建筑依赖底层建筑“倒置”过来,变成底层建筑 ...
 - spring技术核心概念纪要
		
一.背景 springframework 从最初的2.5版本发展至今,期间已经发生了非常多的修正及优化.许多新特性及模块的出现,使得整个框架体系显得越趋庞大,同时也带来了学习及理解上的困难. 本文阐述 ...
 - 获取spring的IOC核心容器,并根据id获取对象
		
public class Client { /** * 获取spring的IOC核心容器,并根据id获取对象 * ApplicationContext的三个常用实现类 * classPathXmlAp ...
 - Spring的核心之IoC容器创建对象
		
Spring的Ioc容器,是Spring的核心内容: 作用:对象的创建和处理对象的依赖关系. Spring容器创建对象有以下几种方式: 1:调用无参数的构造器 <!-- 默认无参的构造器 --& ...
 - spring核心容器
		
容器:用来包装或装载物品的储存器 web服务器与jsp.servlet的关系: 从程序文件存放的位置 程序文件要放到web服务器上 从程序执行的方式 程序的从初始化到消亡都是web服务器管理的 从以 ...
 
随机推荐
- t5_sumdoc.txt
			
C:\Users\Administrator\Documents\sumdoc 2019\sumdoc t5 final\sumdoc t511C:\Users\Administrator\Docum ...
 - wordpress 获取指定作者的所有 post meta
			
$args = array( 'post_type' => array( 'post','knowledgebase'), 'post_status' => 'publish', 'aut ...
 - Android设置顶部banner背景透明度时影响全局背景问题
			
项目中用到滑动界面使顶部title栏背景渐隐渐现的效果,即初始不滑动时的透明度为0,用了bannerle.getBackground().setAlpha(0); 但使用这个方法设置透明度是管用,返回 ...
 - 泡泡一分钟:Geometric and Physical Constraints for Drone-Based Head Plane Crowd Density Estimation
			
张宁 Geometric and Physical Constraints for Drone-Based Head Plane Crowd Density Estimation 基于无人机的向下平面 ...
 - Katalon studio登陆并进行用户名和密码参数化
			
前面步骤不截图了,简单说一下: 1.创建空的test case :login 2.点击record录制脚本,走登陆 3.生成的脚本后,点击login用例属性,新建2个变量值 4.创建好后,进入用例页面 ...
 - java日期格式转换大全
			
public class DateFormatUtils { private static Log logger = LogFactory.getLog(DateFormatUtils.class); ...
 - java Random 抢红包算法
			
红包有一个总金额和总数量,领的时候随机分配金额. 维护一个剩余总金额和总数量,分配时,如果数量等于1,直接返回总金额,如果大于1,则计算平均值,并设定随机最大值为平均值的两倍,然后取一个随机值,如果随 ...
 - ODAC Developer Downloads - Oracle Universal Installer
			
https://www.baidu.com/link?url=BL2vRNMWap6AFJcmsFCEKi3KxZ2SgmtVJoihVKhF-SPgzvJHNkbk_j7nz1HdtAAWZ22NM ...
 - kubernetes之Scheduler原理分析
			
scheduler在整个系统承担了承上启下的重要功能 承上值负责接受Controller Manager创建新的pod,安排目标Node 旗下指安置工作完成后,目标Node上的kubelet服务进程接 ...
 - K8S使用入门-创建第一个容器
			
前面两个教程我们已经使用kubekit将K8S搭建起来了.但是,没有将实际使用中需要在K8S上部署我们的容器创建起来的教程,都是耍流氓.所以,经过几番折腾,我回来给自己洗白了.之前一直卡在创建第一个容 ...