Spring筆記(4)-依賴注入 Bean屬性

1 手動裝配,xml 配置

  • User
package com.tzb.model;

public class User {
    private String username;
    private String password;
    private  int age;

    public User() {
    }

    public User(String username, String password) {
        this.username = username;
        this.password = password;
    }

    public User(String username, int age) {
        this.username = username;
        this.age = age;
    }

    @Override
    public String toString() {
        return "User{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", age=" + age +
                '}';
    }

    public int getAge() {
        return age;
    }

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

1.1 構造方法注入

  • beans.xml
    <bean id="user" class="com.tzb.model.User">

<!--         等價於調用 public User(String username, String password)-->
        <constructor-arg name="username" value="tzb"></constructor-arg>
        <constructor-arg name="password" value="123"></constructor-arg>
    </bean>

<bean id="user" class="com.tzb.model.User">
        <constructor-arg index="0" value="tzb" type="java.lang.String"></constructor-arg>
        <constructor-arg index="1" value="18" type="int"></constructor-arg>
    </bean>

  • 測試
 @Test
    public void test(){
        ApplicationContext contex = new ClassPathXmlApplicationContext("beans6.xml");
        User user = (User)contex.getBean("user");
        System.out.println(user);
    }

1.2 屬性set方法注入

  • beans.xml
<bean id="user" class="com.tzb.model.User">
      <property name="age" value="18"></property>
    </bean>

1.3 p命名空間注入【瞭解】

2 spring 表達式

  • <property>進行統一編程,所有的內容都使用value
	<property name="" value="#{表達式}">
#{123}、#{'jack'} : 數字、字符串
#{beanId}	:另一個bean引用
#{beanId.propName}	:操作數據
#{beanId.toString()}	:執行方法
#{T(類).字段|方法}	:靜態方法或字段

2.1 測試

  • Customer
package com.tzb.model;

public class Customer {
    private String name;
    private String sex = "男";
    private double pi;

    @Override
    public String toString() {
        return "Customer{" +
                "name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", pi=" + pi +
                '}';
    }

    public String getName() {
        return name;
    }

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

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public double getPi() {
        return pi;
    }

    public void setPi(double pi) {
        this.pi = pi;
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章