Spring 配置文件注入

一、Spring配置文件注入

package com.zxguan.demo;

public class Person {
    
    private String name;
    
    private int age;
    
    public Person() {
    }
    
    public Person(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

 

  1、属性注入:

    1)bean中一定要有无参构造方法

    2)使用配置文件注入时,只检查配置属性对应的setter方法是否都能在bean中找到,而不要求属性

    <bean id="person" class="com.zxguan.demo.Person">
        <property name="name">
            <value>zhangsan</value>
        </property>
        <property name="age">
            <value>10</value>
        </property>
    </bean>    

 

  2、接口注入:配置信息与属性注入一致,bean实现的接口的方法中用到注入的属性或对象

    1)bean中一定要有无参构造方法

 

  3、构造方法注入:

    1)将 类型(type),索引(index)相结合使用,使配置指定的顺序、类型与构造参数顺序、类型一致;

  <bean id="person" class="com.zxguan.demo.Person">
        <constructor-arg type="java.lang.String" index="0">
            <value>zhangsan</value>
        </constructor-arg>
        <constructor-arg type="int" index="1">
            <value>10</value>
        </constructor-arg>
    </bean>

 

    2)反射注入,配置顺序与构造方法参数顺序必须一致

    <bean id="person" class="com.zxguan.demo.Person">
        <constructor-arg>
            <value>zhangsan</value>
        </constructor-arg>
        <constructor-arg>
            <value>10</value>
        </constructor-arg>
    </bean>

  注意:

  1、spring使用配置文件注入时,setter方法是必须的(不需要getter,spring只做注入)

  2、变量的前两个字幕要不全部大写,要不全部小写,否则注入出错

  3、构造方法注入,如果有两个对象相互引用,那么会造成循环依赖。解决方法:改为属性注入

 

二、注入参数

  1、字面量:可用字符串表示的值,通过<value>标签进行注入。默认情况下,基本数据类型及其封装类、String类都可采用字面量注入。

  2、XML中共有5个特殊符号:<、>、&、“、',包含这5个特殊字符的用<![CDATA[xxx]]>包起来,或者用转义字符特换

  3、<NULL>单独的一个标签,不与<VALUE>混用。

  特别注意:

  一般情况下,XML解析器会忽略元素前后的空格,而Spring却不会忽略。

原文地址:https://www.cnblogs.com/zxguan/p/7831860.html