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

时间: 2024-10-28 14:20:12

Spring的核心容器的相关文章

【Spring】Spring之核心容器bean

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:Spring的核心容器实现了Ioc,其目 的是提供一种无侵入式的框架.在本文中,首先讲解了Spring的基础bean的相关知识,然后介绍了Spring是如何对bean进行管理的. 在Spring中,有2个最基本最重要的包,即org.springframework.beans 和org.springframework.context.在这两个包中实现了无侵入式的框架,代码中大量引用了ja

Spring之核心容器bean

摘要:Spring的核心容器实现了Ioc,其目 的是提供一种无侵入式的框架.在本文中,首先讲解了Spring的基础bean的相关知识,然后介绍了Spring是如何对bean进行管理的. 在Spring中,有2个最基本最重要的包,即org.springframework.beans 和org.springframework.context.在这两个包中实现了无侵入式的框架,代码中大量引用了java的反射机制,通过动态调用的方式避免了硬编码,为spring的反向控制特性提供了基础.在这2个包中,最重

正则表达添加170号段Spring之核心容器

Some ladies <a title="who" style='font: 14px/24px "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; padding: 0px; text-align: left; color: rgb(51, 51, 51); text-transform: none; text-indent: 28px; letter-spacing: normal;

spring技术核心概念纪要

一.背景 springframework 从最初的2.5版本发展至今,期间已经发生了非常多的修正及优化.许多新特性及模块的出现,使得整个框架体系显得越趋庞大,同时也带来了学习及理解上的困难. 本文阐述了一些要点,并配合一些代码样例,这有助于快速理解 spring 框架. 二.spring架构 核心容器层 Core 模块 提供了框架的基本组成部分,包括 IoC 及依赖注入功能. Bean 模块 实现 Bean 管理,包括自动装配机制等功能: 其中BeanFactory是一个工厂模式的实现. Con

Spring系列之核心容器

[回顾] 在上篇博客中,我们清楚了Spring的核心IOC,博客的结尾,提出了关于容器的问题.在Spring框架中,容器扮演者重要的角色.容器是什么?Java容器?Spring容器?这几个词,大家都很熟悉,但真正知道么?本篇博客的重点分析Spring中的核心容器.容器和Java容器不做详细介绍. [容器] 容器,从字面角度很容易理解,就是用来贮藏东西的.从计算机的角度,可粗略地分为Web容器和编程容器. Web容器是应用服务器中位于组件和平台之间的接口集合.如WebLogic.Tomcat等.

spring核心容器

容器:用来包装或装载物品的储存器 web服务器与jsp.servlet的关系: 从程序文件存放的位置 程序文件要放到web服务器上 从程序执行的方式  程序的从初始化到消亡都是web服务器管理的 从以上两方面看: web服务器实际是动态网页程序文件的容器 核心容器概述 :控制反转 ,通过容器控制对象的创建以及维护.反转就是将对象的控制权转移给容器处理,目的是获得更好的拓展性和可维护型. public class Boy{ private Dog dog; public Dog getDog(){

一头扎进Spring之---------Spring核心容器

[回顾] 在上篇博客中,我们清楚了Spring的核心IOC,博客的结尾,提出了关于容器的问题.在Spring框架中,容器扮演者重要的角色.容器是什么?Java容器?Spring容器?这几个词,大家都很熟悉,但真正知道么?本篇博客的重点分析Spring中的核心容器.容器和Java容器不做详细介绍. [容器] 容器,从字面角度很容易理解,就是用来贮藏东西的.从计算机的角度,可粗略地分为Web容器和编程容器. Web容器是应用服务器中位于组件和平台之间的接口集合.如WebLogic.Tomcat等.

Spring源码解读之核心容器上节

Spring架构图 说明 Spring的流行程度就不用我来说了,相信大家如果使用JAVA开发就一定知道它.写这篇文章的初衷在于:1.了解Spring底层实现原理,提升对Spring的认识与理解.2.学习优秀框架编程实现,学习优秀的设计模式.3.使用Spring三年多,对于底层细节希望知道更多,便于求职. 对于Spring整个架构是很庞大的,很难一下看完和思考完,所以我会从Core Container进行切入,一步一步往上走,从而解开Spring神秘的底层面纱.同时对Spring的IOC\AOP\

Spring源码解读之核心容器下节

续 上一篇我们通过ClassPathXmlApplicationContext加载xml文件,通过BeanFactory获取实例bean的demo代码去解读了Spring Core Container中的spring-beans,spring-core,spring-context三个组件之间的一些具体类的实现.从加载XML.构造BeanFactory.到初始化Bean,已经有了一个全貌的了解.今天继续前一节,我们来说一下注解方式是如何实现bean是如何实现自动化装配和依赖加载的. 注解demo