Spring 如何初始化一个容器

转载 2007年09月11日 18:39:00
什么是Spring 的 IOC 容器呢 ?  可以说  BeanFactory 就是 我们看到的Spring IoC容器.

如何初始化 SPRING 的 IOC 容器 ?

一共三种方法 :

1 :
Resource resource = new FileSystemResource("beans.xml");
BeanFactory factory 
= new XmlBeanFactory(resource);


2:

ClassPathResource resource = new ClassPathResource("beans.xml");
BeanFactory factory 
= new XmlBeanFactory(resource);

 
3:

ApplicationContext context = new ClassPathXmlApplicationContextnew String[] {"applicationContext.xml""applicationContext-part2.xml"});
BeanFactory factory 
= (BeanFactory) context;


详细展开 :

一 :org.springframework.core.io包中主要是各样的Resource类



补充UML 知识 :

1:类名是斜体的表示是抽象类,正体的表示普通类

2 :

3 :

   

温昱说图

org.springframework.core.io包中主要是各样的Resource类,Spring的 Resource 接口是为了提供更强的访问底层资源能力的抽象。相当巧妙的地方在于,为何AbstractResource的子类有的override了getFile ()而有的没有?这是因为在AbstractResource的getFile()方法设计为抛出异常,如果子类没有重写此方法,说明子类不支持通过绝对 路径查找资源的方式,而override的子类则提供自己的实现。这里通过类的层次设计,充分利用继承带来的优点,避免了大量的条件语句。


二 :关于 org.springframework.beans.factory 包 和 org.springframework.context 包:

1 :BeanFactory 是个接口,LifecycleBean 是个类它负责管理bean的生命周期,它实现了4个接口,并且有一个 BeanFactory  类型的变量 owningFactory



补充一下 上文 的 XmlBeanFactory 不是

org.springframework.beans.factory

包下面的 而是

org.springframework.beans.factory.xml

下面的

2 。 ApplicationContext 也是个接口,它继承的 ListableBeanFactory  接口 又 继承 BeanFactory 接口

public interface ApplicationContext extends ListableBeanFactory, HierarchicalBeanFactory,  MessageSource, ApplicationEventPublisher, ResourcePatternResolver {
}

public interface ListableBeanFactory extends BeanFactory {
}

        Spring的bean包支持通过编码方式管理和操作bean的基本功能,ApplicationContext则以Framework的方式提供BeanFactory的所有功能。使用
ApplicationContext,你可以让系统加载你的bean,例如:

在Servlet容器初始化ContextLoaderServlet时,通过ContextLoader类加载Spring Framework),而不是使用编码方式来加载。

       ApplicationContext接口是context包的基础,位于org.springframework.context包里,提供了 BeanFactory的所有功能。除此之外, ApplicationContext为了支持Framework的工作方式,提供了以下的功能:

       l.MessageSource,提供了语言信息的国际化支持
      
2.提供资源(如URL和文件系统)的访问支持
      
3.为实现了ApplicationListener接口的bean提供了事件传播支持
      
4.为不同的应用环境提供不同的context,例如支持web应用的XmlWebApplicationContext类
 

相关文章推荐

Spring 如何初始化一个容器,( 加载xml 文件 )

什么是Spring 的 IOC 容器呢 ?  可以说  BeanFactory 就是 我们看到的Spring IoC容器. 如何初始化 SPRING 的 IOC 容器 ? 一共三种方法 : 1...

如何在一个网站初始化的servlet中使用spring容器中的bean

之前遇到一个需求,场景是这样的,在一个WEB应用经常有一些数据需要在应用加载完成后就马上进行处理,比如把数据从数据库读取出来然后放到全局上下文供所有用户使用。 一般来说,我们会使用这样一种方式来实现...

写一个自己的Spring框架——简单实现IoC容器功能

学习过Spring的同学都知道,Spring框架的核心就是IoC和AOP。Spring可以理解为一个工厂,负责对象的创建和对象间关系的维护。IoC即控制反转,简单点说就是原来的对象是在要使用之前通过在...

1000行代码读懂Spring(一)- 实现一个基本的IoC容器

感谢原文作者,原文地址是:https://my.oschina.net/flashsword/blog/192551 引言 最近在读Spring源码,但是Spring代码层次嵌套太多,读起来有很大...

仿照spring-boot实现一个简单的ioc容器(一)

前言跳过废话,直接看正文之前参与开发的几个spring的项目,用的版本都3.x, 最近忽然发现spring 5 都快上线了,于是赶紧去关注了下spring的最新动态。发现了spring-boot这个好...

深入理解Spring--动手实现一个简单的SpringIOC容器

主要思想:    提到IOC,第一反应就是控制反转,我以前以为SpringIOC就是控制反转,控制反转就是SpringIOC,当然这种理解是错误的,控制反转是一种思想,一种模式,而Spring的...

解决spring-cloud应用无法部署在同一个容器中的问题

I have two services which are eureka clients (using @EnableDiscoveryClient). Both services are packa...
  • cnhome
  • cnhome
  • 2016-08-19 11:45
  • 4027

仿照spring-boot实现一个简单的ioc容器(二)

前言跳过废话,直接看正文 仿照spring-boot的项目结构以及部分注解,写一个简单的ioc容器。 测试代码完成后,便正式开始这个ioc容器的开发工作。正文项目结构 simpleioc boo...

Spring 容器从加载文件到创建一个完整Bean的工作流程

1、ResourceLoader从存储介质中加载Spring配置文件,并使用Resource表示这些配置文件的资源; 2、BeanDefinitionReader读取 Resource所指向的配置文...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)