zoukankan      html  css  js  c++  java
  • 2015第32周三

    ApplicationContext通常的实现是什么?

    • FileSystemXmlApplicationContext :此容器从一个XML文件中加载beans的定义,XML Bean 配置文件的全路径名必须提供给它的构造函数。
    • ClassPathXmlApplicationContext:此容器也从一个XML文件中加载beans的定义,这里,你需要正确设置classpath因为这个容器将在classpath里找bean配置。
    • WebXmlApplicationContext:此容器加载一个XML文件,此文件定义了一个WEB应用的所有bean。

    什么是Spring beans?

    Spring beans 是那些形成Spring应用的主干的java对象。它们被Spring IOC容器初始化,装配,和管理。这些beans通过容器中配置的元数据创建。比如,以XML文件中<bean/> 的形式定义。

    Spring框架支持以下五种bean的作用域:

    • singleton : bean在每个Spring ioc 容器中只有一个实例。
    • prototype:一个bean的定义可以有多个实例。
    • request:每次http请求都会创建一个bean,该作用域仅在基于web的Spring ApplicationContext情形下有效。
    • session:在一个HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的Spring ApplicationContext情形下有效。
    • global-session:在一个全局的HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的Spring ApplicationContext情形下有效。

    缺省的Spring bean 的作用域是Singleton.

    解释Spring框架中bean的生命周期。

    • Spring容器 从XML 文件中读取bean的定义,并实例化bean。
    • Spring根据bean的定义填充所有的属性。
    • 如果bean实现了BeanNameAware 接口,Spring 传递bean 的ID 到 setBeanName方法。
    • 如果Bean 实现了 BeanFactoryAware 接口, Spring传递beanfactory 给setBeanFactory 方法。
    • 如果有任何与bean相关联的BeanPostProcessors,Spring会在postProcesserBeforeInitialization()方法内调用它们。
    • 如果bean实现IntializingBean了,调用它的afterPropertySet方法,如果bean声明了初始化方法,调用此初始化方法。
    • 如果有BeanPostProcessors 和bean 关联,这些bean的postProcessAfterInitialization() 方法将被调用。
    • 如果bean实现了 DisposableBean,它将调用destroy()方法。

    解释不同方式的自动装配 。

    有五种自动装配的方式,可以用来指导Spring容器用自动装配方式来进行依赖注入。

    • no:默认的方式是不进行自动装配,通过显式设置ref 属性来进行装配。
    • byName:通过参数名 自动装配,Spring容器在配置文件中发现bean的autowire属性被设置成byname,之后容器试图匹配、装配和该bean的属性具有相同名字的bean。
    • byType::通过参数类型自动装配,Spring容器在配置文件中发现bean的autowire属性被设置成byType,之后容器试图匹配、装配和该bean的属性具有相同类型的bean。如果有多个bean符合条件,则抛出错误。
    • constructor:这个方式类似于byType, 但是要提供给构造器参数,如果没有确定的带参数的构造器参数类型,将会抛出异常。
    • autodetect:首先尝试使用constructor来自动装配,如果无法工作,则使用byType方式。
  • 相关阅读:
    Service Cloud 零基础(五)Trailhead学习 Embedded Chat
    Community Cloud零基础学习(五)Topic(主题)管理
    Service Cloud 零基础(四)快速配置一个问卷调查(无开发)
    salesforce零基础学习(一百)Mobile Device Tracking
    mysql 设置查询超时配置
    YIi2 Object 报错问题
    php 如何创建uuid
    mysql8 安装后无法登录的问题
    nano编辑器保存退出
    在使用openbms的时候发现的Thinkphp action 大小写问题
  • 原文地址:https://www.cnblogs.com/doit8791/p/4706187.html
Copyright © 2011-2022 走看看