• Spring 配置文件中 元素 属性 说明


    <beans /> 元素

    该元素是根元素。
    <bean /> 元素的属性
    default-init // 是否开启懒加载。默认为 false default-dependency-check // 默认为 none default-autowire // 是否自动转配。默认为 no <bean /> 元素的子元素 <description /> // 可选 <import /> // 包含 resource 属性,引用其他配置文件 <bean /> // 定义 bean

    <bean /> 元素中的属性

    <bean /> 元素中的属性
    id  // Java bean 在 BeanFactory 中的唯一标识符。代码中通过 BeanFactory获取。JavaBean 实例化时,需要以此作为索引名称。
    name  // 如果没有配置id,name属性默认为标识符;如果配置了 id,则此时 name 为别名。
    class  // Java Bean 的全限定类名,即真正接口的实现类。如果不配置 id 和 name,那么可以根据 applicationContext.getBean(Class) 获取对象。
    scope  // bean 的作用域,取值为 singleton、prototype、request、session、application。
    singleton  // bean 的作用域(创建模式是 prototype 还是 singleton )。singleton(单例模式)如果设为 true,只维护次 Java Bean 的一个实例;反之,如果设为 false,BeanFactory 每次都将创建一个新的实例返回。默认为 true
    init-method  // 初始化方法,此方法将在 BeanFactory 创建 JavaBean 实例后,在向应用层返回引用之前执行。一般用于一些资源的初始化工作。在 JavaBean 中创建 init 方法,再添加属性 init-method=“init” 就行。
    destroy-method  // 销毁方法。此方法将在 BeanFactory 销毁的时候执行,一般用于资源释放。与 init-method 用法类似。
    depends-on  // Bean 依赖关系,一般情况下无需设定,Spring 会根据情况组织各个依赖关系的构建工作。只有在某些特定情况下,如 JavaBean 中的某些静态变量需要进行初始化,通过 depends-on 指定其依赖关系可以保证在此 Bean 加载之前,首先对 depends-on 所指的资源进行加载。
    autowire  // 自动装配,用于简化 spring 配置。取值 byname、bytype、constructor。
    
    <bean /> 元素中的子元素
    <constructor-arg />  // 指定构造器参数

    <constructor-arg /> 元素

    当被指定的方法是无参方法时,不需要使用该属性。

    当被指定的方法有一个参数时,可以直接在 <constructor-arg /> 中嵌套一个 <value />元素或者 <ref />元素等,用来指定相应的参数。

    当被指定的方法有多个参数时,需要通过 index 方法指定参数顺序。某些情况下,index 可以省略,spring 会根据参数的类型进行自动匹配。

    <!-- 当有一个参数时 -->
    <bean id="***" class="***">
      <constructor-arg>
        <!-- 直接指定 value 值 -->
        <value type="java.lang.String">hello</value>
        <!-- 通过 ref 指定已经声明的 bean 的值 -->
        <ref bean="***" />
      </constructor-arg>
    </bean>
    
    <!-- 当有多个参数时 -->
    <bean id="***" class="***">
      <bean>
        <constructor-arg index="0" type="java.lang.String" value="hello">
        <constructor-arg index="1" type="java.lang.String" value="hello">
      </bean>
    </bean>
    
    <!-- list 参数传入 -->
    <constructor-arg>
      <list>
        <value>value1</value>
        <value>value2</value>
      </list>
    </constructor-arg>
    
    <!-- set 参数传入 -->
    <constructor-arg>
      <set>
        <value>value1</value>
        <value>value2</value>
      </set>
    </constructor-arg>
    
    <!-- map 参数传入 -->
    <constructor-arg>
      <map>
        <entry key="key1" value="value1" />
        <entry key="key2" value="value2" />
      </map>
    </constructor-arg>

    <property /> 元素用于指定属性

    <property /> 元素可作为 <bean /> 元素的子元素

    name:指定 <property /> 所在 bean 的类中的参数

    value:赋给改参数的值

    ref:指定 bean 配置文件中的 bean 的名称

    <bean id="person" class="service.Person">
        <!-- 控制器调用setAxe方法,将容器中的axe bean作为传入的参数 -->
        <!-- 此处的 name 是指定 Person 类中的参数,ref 是指 bean 配置文件中的 bean 名称 -->
        <property name="axe" ref="axe"></property>
    </bean>
  • 相关阅读:
    机器学习:SVM(核函数、高斯核函数RBF)
    机器学习:SVM(非线性数据分类:SVM中使用多项式特征和核函数SVC)
    LeetCode566. Reshape the Matrix
    LeetCode 128. Longest Consecutive Sequence
    # 线程安全 & 线程安全函数 & 线程不安全函数
    Linux进程状态
    C++ 4种强制类型转换
    TCP超时重传、滑动窗口、拥塞控制、快重传和快恢复
    LeetCode 69. Sqrt(x)
    LeetCode543. Diameter of Binary Tree
  • 原文地址:https://www.cnblogs.com/0820LL/p/10206711.html
Copyright © 2020-2023  润新知