1. 程式人生 > 實用技巧 >Spring-Bean注入實現-03

Spring-Bean注入實現-03

Bean注入實現


  1. 建立web專案

  2. 新增spring包(5個)

    • commons-logging-1.2.jar
    • spring-beans-4.3.17.RELEASE.jar
    • spring-context-4.3.17.RELEASE.jar
    • spring-core-4.3.17.RELEASE.jar
    • spring-expression-4.3.17.RELEASE.jar

1、Setter注入

  1. 在src->com.jt.demo1下建立User類。

    新增成員:name,sex,age及setter/getter方法

package com.jt.demo1;

public class User {
    private String name;//使用者姓名
    private Integer age;//年齡
    private String sex;//性別

    public String getName() {
        return name;
    }

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

    public Integer getAge() {
        return age;
    }

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

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
}
  1. 在src下建立配置檔案applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean name="user1" class="com.jt.demo1.User">
		<property name="name">
			<value>無語</value>
		</property>
		<property name="age">
			<value>30</value>
		</property>
		<property name="sex">
			<value>女</value>
		</property>
	</bean>

</beans>
  1. 在src->com.jt.demo1下建立TestUser類。
package com.jt.demo1;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;


public class TestUser {
    public static void main(String[] args) {
        ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
        User user=(User)context.getBean("user1");
        System.out.println(user.getName());
        System.out.println(user.getAge());
        System.out.println(user.getSex());
    }
}

執行~

2、構造器注入

  1. 在src->com.jt.demo2下建立User類,並在類中新增構造器。
package com.jt.demo2;

public class User {
    private String name;//使用者姓名
    private Integer age;//年齡
    private String sex;//性別

    public User(String name, Integer age, String sex){
        this.name=name;
        this.age=age;
        this.sex=sex;
    }
    public String getName() {
        return name;
    }

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

    public Integer getAge() {
        return age;
    }

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

    public String getSex() {
        return sex;
    }

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

  1. 在src->applicationContext.xml中新增
<bean name="user2" class="com.jt.demo2.User">
    <constructor-arg  name="name">
        <value>啊這</value>
    </constructor-arg>
    <constructor-arg name="age">
        <value>23</value>
    </constructor-arg>
    <constructor-arg name="sex">
        <value>男</value>
    </constructor-arg>
</bean>
  1. 在src->com.jt.demo2下建立TestUser類。
package com.jt.demo2;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestUser {
    public static void main(String[] args) {
        ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
        User user=(User)context.getBean("user2");
        System.out.println(user.getName());
        System.out.println(user.getAge());
        System.out.println(user.getSex());
    }
}

執行~

3、引用其他javaBean的例項物件

step1、建立java類

在demo3下建立User類

package com.jt.demo3;

public class User {
    private String name;//使用者姓名
    private Integer age;//年齡
    private String sex;//性別

    public String getName() {
        return name;
    }

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

    public Integer getAge() {
        return age;
    }

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

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
    //輸出JavaBean的屬性值方法
    public void printInfo(){
        System.out.println("使用者姓名——"+name);//輸出使用者的姓名
        System.out.println("使用者年齡——"+age);//輸出使用者的年齡
        System.out.println("使用者性別——"+sex);//輸出使用者的性別
    }
}

在demo3下建立Manager類

  • 新增User類的成員和setter(和getter)方法
package com.jt.demo3;

public class Manager {
    private User user;//注入User物件

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }
}
step2、配置xml

在applicationContext.xml中新增

<bean id="user3" class="com.jt.demo3.User">
    <property name="name">
        <value>張三</value>
    </property>
    <property name="age">
        <value>11</value>
    </property>
    <property name="sex">
        <value>男</value>
    </property>
</bean>

<bean name="manager" class="com.jt.demo3.Manager">
    <property name="user">
        <ref bean="user3"/>
    </property>
</bean>

ref標籤引用其他javaBean的例項物件

step3、測試

在demo3下建立TestUser類

package com.jt.demo3;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestUser {
    public static void main(String[] args) {
        ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
        Manager manager=(Manager)ctx.getBean("manager");
        manager.getUser().printInfo();//獲取user3物件,並呼叫其方法
    }
}

執行~