Spring的核心容器
2019-08-16 09:29:32来源:博客园 阅读 ()
Spring的核心容器
Spring框架的主要功能是通过其核心容器来实现的。Spring提供了2种核心容器:BeanFactory、ApplicationContext。
BeanFactory
BeanFactory是一个管理Bean的工厂,主要负责初始化各种Bean,并调用它们的声明周期方法。
BeanFactory由BeanFactory接口定义。BeanFactory接口的常用实现类:XmlBeanFactory类。
创建一个BeanFactory的实例:
1 Resource resource=new FileSystemResource("D:/test/src/applicationContext.xml"); 2 BeanFactory beanFactory=new XmlBeanFactory(resource);
创建一个Spring容器,并使用xml配置文件来初始化容器。参数是Resource类型,指定容器的配置文件。
因为要使用绝对路径,不方便程序移植,不推荐使用。
ApplicationContext
ApplicationContext是BeanFactory的子接口,被称为应用上下文。除了有BeanFactory的全部功能,还提供了对国际化、资源访问、事件传播等的支持,经常用这个。
ApplicationContext接口有2个常用的实现类:
- ClassPathXmlApplicationContext类 //使用相对路径,最常用,推荐
- FileSystemXmlApplicationContext类 //使用绝对路径,不推荐
创建示例:
1 ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
1 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的类,这样返回值就是该类型的,不必转换类型。
原文链接:https://www.cnblogs.com/chy18883701161/p/11107958.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:mybatis学习一
下一篇:每日一码——排序算法
- Spring系列.ApplicationContext接口 2020-06-11
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- 给你一份超详细 Spring Boot 知识清单 2020-06-11
- SpringBoot 2.3 整合最新版 ShardingJdbc + Druid + MyBatis 2020-06-11
- 掌握SpringBoot-2.3的容器探针:实战篇 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
