• Spring 容器


    容器,顾名思义,简单来说,就是放对象,拿对象。Spring容器就是管理放进容器中的对象的。

    Spring容器是Spring的核心,一切Spring bean都存储在Spring容器内,并由其通过IoC技术管理。Spring容器也就是一个bean工厂(BeanFactory)。应用中bean的实例化,获取,销毁等都是由这个bean工厂管理的。

    具体体现,举个简单例子,在使用Spring框架时,把Java对象交给Spring容器,不用自己手动new 对象。通过配置文件+注解的方式进行对象的创建和使用。

    Spring 容器是什么?

    使用Spring框架编写应用程序之所以很简单,是因为有Spring容器帮程序员处理了大量繁琐的过程,可以说Spring 容器是 Spring 框架的核心。那Spring容器到底是什么?

    • 从概念上讲:Spring 容器是 Spring 框架的核心,是用来管理对象的。容器将创建对象,把它们连接在一起,配置它们,并管理他们的整个生命周期从创建到销毁。
    • 从具象化讲:在java项目中,我们使用实现了org.springframework.context.ApplicationContext接口的实现类。在web项目中,我们使用spring.xml——Spring的配置文件。
    • 从代码上讲:一个Spring容器就是某个实现了ApplicationContext接口的类的实例。也就是说,从代码层面,Spring容器其实就是一个ApplicationContext(一个实例化对象)。

    Spring容器的功能包括:

    Spring容器的类别及其特点:

    参考 :https://blog.csdn.net/qq_34598667/article/details/83245753

    参考 :https://www.cnblogs.com/h-c-g/p/11151861.html

    在Spring中,那些组成你应用程序的主体及由Spring Ioc容器所管理的对象,都被称之为bean。简单来讲,bean就是Spring容器初始化、配置及管理的对象。除此之外,bean就与应用程序中的其他对象没有什么区别了。而bean定义以及bean相互间的依赖关系将通过配置元数据来描述。

    容器:

      org.springframework.beans.factory.BeanFactory是Spring Ioc容器的实际代表者,Ioc容器负责容纳此前所描述的bean,并对bean进行管理。

      在Spring中,BeanFacyory是Ioc容器的核心接口。它的职责包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。

      Spring为我们提供了许多易用的BeanFactory实现,XmlBeanFactory就是最常用的一个。该实现将以XML方式描述组成应用的对象以及对象间的依赖关系。XmlBeanFactory类将获取此XML配置元数据,并用它来构建一个完全可配置的系统或应用。

     从上图可以看到,Spring Ioc容器将读取数据元配置,并通过它来对应用中各个对象进行实例化、配置及组装。通常情况下我们使用简单直观的XML来作为配置元数据的描述格式。在XML配置元数据中我们可以对那些我们希望通过Spring Ioc容器管理的bean进行定义。

      注:Spring Ioc容器至少包含一个bean定义,但大多数情况下会有多个bean定义。bean定义与应用程序中实际使用的对象一一对应。通常bean的定义包括:服务处对象、数据访问层对象、类似Struts Action的表示层对象、Hibernate SessionFactory对象、JMS Queue对象等等。通常bean的定义并不与容器中的领域对象相同,因为领域对象的创建和加载必须依赖具体的DAO和业务逻辑。

      以下是一个基于XML的配置元数据的基本结构:

       Spring Ioc容器的实例化:

      XML配置元数据的结构:将XML配置文件拆分成多个部分是非常有用的。为了加载多个XML文件生成一个ApplicationContext实例,可以将文件路径作为字符串组传给ApplicationContext构造器。而beanFactory将通过bean defintion reader从多个文件中读取bean定义,这中方式各个配置并不会查觉到它们与其他配置文件的组合。另外一种方式就是使用一个或者多个<import/>元素来从另外一个或多个文件加载bean文件。所有的<import/>元素必须在<bean/>元素之前完成bean定义的导入。例子:

      需要注意的就是根据Spring XML配置文件的Schema,被导入的文件必须是完全有效的XML bean定义文件,且跟节点必须是<beans/>元素。

  • 相关阅读:
    关于WPF的控件对齐方式
    RTC与WebRTC有什么区别
    Ubuntu 14.04 单机安装 CEPH
    【DP专题】——棋盘分割
    征战蓝桥 —— 2015年第六届 —— C/C++A组第9题——垒骰子
    征战蓝桥 —— 2015年第六届 —— C/C++A组第9题——垒骰子
    征战蓝桥 —— 2015年第六届 —— C/C++A组第9题——垒骰子
    征战蓝桥 —— 2014年第五届 —— C/C++A组第10题——波动数列
    征战蓝桥 —— 2014年第五届 —— C/C++A组第10题——波动数列
    征战蓝桥 —— 2014年第五届 —— C/C++A组第10题——波动数列
  • 原文地址:https://www.cnblogs.com/wfy680/p/14987042.html
Copyright © 2020-2023  润新知