zoukankan      html  css  js  c++  java
  • spring中ApplicationContext

    1 spring 容器应用上下文:ApplicationContext 主要的实现类是 ClassPathXmlApplicationContext 和 FileSystemXmlApplicationContext, 前者默认是从类路径加载配置文件,后者默认从文件系统中加载配置文件。

    对于 ClassPathXmlApplicationContext 来说,“com.smart.beans.xml” 等同于 “classpath:com.smart.beans.xml”

    ApplicationContext 在初始化应用上下文时就实例化所有单实例的 Bean,

    2 WebApplicationContext 是专门为 WEB 应用准备的,它允许从web 应用的根目录的路径中加载配置文件完成初始化工作。

    从 WebApplicationContext 可以获得 ServletContext 的引用,整个 WEB 应用上下文对象将作为属性放到 ServletContext 容器中,以便于web 应用环境可以访问 spring 应用上下文。

    3 WebApplicationContext 初始化,它的初始化方式和 ApplicationContext 初始化方式不同,因为 WebApplicationContext 初始化需要 ServletContext 实例,也就是说必须在拥有 WEB 容器的前提下

    才能完成初始化工作。通过 web.xml 文件配置自启动的 Servlet 或定义 web 容器监听器(ServletContextListener),配置任一即可完成启动 Spring web 应用上下文的工作。

    spring 提供了 ContextLoaderServlet 和 ContextLoaderListener。二者内部都实现了启动 WebApplicationContext 实例的逻辑,配置二选一即可。

    ContextLoaderListener 是通过web 容器上下文参数 ContextConfigLocation 获取 spring 配置文件位置。

    如果是在不支持容器监听器的低版本 web 容器中,则可以采用 ContextLoaderServlet  完成相同工作。

    其中 ContextLoaderListener 或 ServletContextListener 配置好后即将 web 容器和 spring 容器进行了整合。

    4 如果在配置文件中声明了工厂后处理器方法 BeanFactoryPostProcessor 的实现类,则应用上下文在装载配置文件之后、初始化 Bean 实例之前将调用这些 BeanFactoryPostProcessor 

    对配置信息进行加工处理。

    spring 框架提供了多个工厂后处理器,如:PropertyPlaceholderConfigurer/CustomEditorConfigurer。如果在配置文件中定义了多个工厂后处理器,最好让他们实现

    org.springframework.core.Ordered 接口,以便 spring 以确定的顺序调用它们。工厂后处理器是容器级的,仅在应用上下文初始化时调用一次,其目的是完成一些配置文件的加工处理工作。

    5 在 ApplicationContext 中,只需在配置文件中通过 <bean> 定义工厂后处理器和 bean 后处理器。

    6 spring 启动时读取应用程序提供的 Bean 配置信息,并在Spring 容器中生成一份相应的 bean 配置注册表,然后根据这张注册表实例化bean, 装配好 bean 之间的依赖关系。

    bean 的配置信息是 bean 的元数据信息,包含以下四个方面

    • bean 的实现类
    • bean 的属性信息,例如:数据源的连接数、用户名、密码
    • bean 的依赖关系
    • bean 的行为配置,如生命周期范围、及生命周期各过程的回调函数

    7 spring 容器、bean 配置信息、bean 实现类 及 应用程序的关系

    8 spring 支持两种依赖注入方式,分别是属性依赖注入和构造函数依赖注入。

    属性注入是通过 setXXX 方法注入 Bean 的属性值或依赖对象。

    javaBean 关于属性的命名规范,属性变量名的前两个字母要么全部大写、要么全部小写。

    9 级联属性配置,使用“.” 表示级联的属性

    10 Properties 类型可以看做是 Map 类型的特例,Properties 属性的键和值必须是字符串。

    11 Bean 作用域类型:singleton,prototype,request,session,globalSession。

    如果要使用 request,session,globalSession 三个作用域,spring 容器需要获得 Web 容器的 HTTP 请求事件,需要配置 RequestContextListener 。

    其中 request 范围的 bean ,则该 bean 在http 请求时创建,请求结束销毁。

  • 相关阅读:
    认识计算机
    Sum 类型题目总结
    3Sum Smaller 解答
    3Sum Closest 解答
    Roman to Integer && Integer to Roman 解答
    Longest Common Prefix 解答
    Shortest Word Distance 解答
    Longest Valid Parentheses 解答
    Lowest Common Ancestor of a Binary Search Tree 解答
    Longest Palindromic Substring 解答
  • 原文地址:https://www.cnblogs.com/zhaopengcheng/p/7338951.html
Copyright © 2011-2022 走看看