分类 标签 存档 社区 博客 友链 GitHub 订阅 搜索

Spring 容器

155 浏览

关键词:Spring 容器、BeanFactory、ApplicationContext

ZERO

    持续更新 请关注:https://zorkelvll.cn/blogs/zorkelvll/articles/2018/11/18/1542543148853

一、容器

     在 Java 中,如果有一个类是专门用来存放其他类的对象的,那么这个类就叫做容器(或者集合,集合就是将若干个性质相同或相近的类对象组合在一起而形成的一个整体)

    Java 容器类:List、ArrayList、Vector、Map、Hashtable、HashMap 等

    Spring 容器:ApplicationContext

    web 容器:tomcat、webLogic、webSphere、Resin

二、Spring 容器

1、概述 

     Spring 提供容器功能,专门用来存放和管理应用中各对象的生命周期、对象间的依赖关系

     Spring 容器是 Spring 的核心,一切 SpringBean 均存储在 Spring 容器内,并通过Ioc 技术(-> 因此也称SpringIOC 容器)进行管理;Spring 容器是一个bean 工厂(BeanFactory),应用中各 bean 的实例化、获取、销毁等均由这个 bean 工厂管理

    简言之,Spring 容器就是一个 Java 编写的程序,之前必须由应用自身编写逻辑代码以管理对象及对象间关系,现在将都由这个程序(容器)自动管理维护。

2、是什么

    在 Spring 中,org.springframework.context.ApplicationContext 接口用于完成容器的配置、初始化、管理 bean;而把某个实现了 ApplicationContext 接口的类的实例,就称之为一个 Spring 容器,也即从代码层面”Spring 容器就是一个ApplicationContext

    在一般 java 工程中,可通过代码显示 new 一个ClassPathXmlApplicationContextFileSystemXmlApplicationContext以初始化一个 Spring 容器;

    在 web 工程中,一般通过在 web.xml 中配置的方式以初始化一个 Spring 容器

3、Web 工程的 Spring 配置

    context-param:contextConfigLocation 指定 Spring 容器初始化时读取配置文件的位置

    listener:ContextLoaderListener 类(-> 该类是标准 SpringWeb 工程中 Spring 开始干活的切入点,这是因为该类实现了 ServletContextListener,在 web 容器启动时该类将对 Spring 容器进行初始化)用于启动 web 容器(如 tomcat)去读取配置文件并完成 Spring 容器的初始化

4、SpringIOC 容器初始化过程:

    SpringIOC 容器启动时,先读取应用程序提供的 Bean 配置信息(XML、Java 类 @Configuration、注解 @Autowire),然后在 Spring 容器中生成一份Bean 配置注册表,然后根据 Bean 注册表实例化 Bean 和装配好 Bean 间依赖关系,并将各 Bean 实例放入到 Spring 容器 (Bean 缓存池,基于 HashMap 实现) -> 上层应用即可使用这些 Bean 实例

评论  
留下你的脚步
推荐阅读