Spring 設值注入 構造注入 p命名空間注入

注入Bean屬性---構造注入配置方案

Spring配置文件中經過<constructor-arg>元素爲構造方法傳參app

 

注意:ide

1、一個<constructor-arg>元素表示構造方法的一個參數,且使用時不區分順序。this

 

2、經過<constructor-arg>元素的index 屬性能夠指定該參數的位置索引,位置從0 開始。spa

 

三、<constructor-arg>元素還提供了type 屬性用來指定參數的類型,避免字符串和基本數據類型的混淆。prototype

 

 

注入不一樣數據類型

 

 

 

 

 

 

構造器注入案例:code

建立兩個實體類 Car 和Student 並封裝,重寫toString方法xml

//Car

package
cn.happy.entity; public class Car { private String color; private String brand; //無參構造 public Car() { } //帶參構造 public Car(String color, String brand) { super(); this.color = color; this.brand = brand; } @Override public String toString() { return "Car [color=" + color + ", brand=" + brand + "]"; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } }
//Student類
package cn.happy.entity;

public class Student {
private String name;
private String age;
private Car car;

//無參構造
public Student() {
    //System.out.println("Student.Student()");
}

//帶參構造
public Student(String name, String age, Car car) {

    this.name = name;
    this.age = age;
    this.car = car;
}


@Override  //重寫toString方法
public String toString() {
    return "Student [name=" + name + ", age=" + age + ", car=" + car + "]";
}



public Car getCar() {
    return car;
}

public void setCar(Car car) {
    this.car = car;
}

public String getAge() {
    return age;
}

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

public String getName() {
    return name;
}

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

 

 

 

在applicationContext.xml中配置以下blog

<!-- 構造注入 -->
     <bean id="car" class="entity.Car"> <property name="brand" value="二八大槓"></property> 
        </bean> <bean id="student" class="entity.Student"> <constructor-arg index="0" 
        value="成成"></constructor-arg> <constructor-arg index="1" value="28"></constructor-arg> 
        <constructor-arg index="2" ref="car"></constructor-arg> </bean> p命名空間注入 <bean 
        id="car" class="entity.Car" p:color="black"> <property name="brand" value="賤賤牌自行車"></property> 
        </bean> <bean id="student" class="entity.Student" p:name="賤賤" p:age="25" 
        p:car-ref="car"/> 

而後書寫單測代碼:索引

public void addTest(){
    ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
    Student student=(Student) ctx.getBean("stu");
    System.out.println(student);

運行後的結果:字符串

___________________________________________________________________________________________________________________________

設值注入

applicationContext.xml中的配置

<!--設值注入 -->
      <bean id="car" class="cn.happy.entity.Car"> 
     <property name="brand" value="二手夏利"></property>
      </bean>
      
      <bean id="stu" class="cn.happy.entity.Student" scope="prototype"> 
      <property name="name" value="呵呵"></property>
      <property name="age" value="13"></property>
      <property name="car" ref="car"></property> 
    </bean>

運行結果:

 

________________________________________________________________________________________________________________________

 P標籤注入

 

<!-- p標籤注入 -->
     <bean id="car" class="cn.happy.entity.Car" p:color="red">
        <property name="brand" value="奧迪"></property>
    </bean>

    <bean id="stu" class="cn.happy.entity.Student" p:name="李四" p:age="12"
        p:car-ref="car">
    </bean> 

運行結果

相關文章
相關標籤/搜索