继企业级信息系统开发学习1.1 —— Spring配置文件管理Bean

骑士救美计划

  • 采用构造方法注入属性值
    • 1、创建救美任务类
    • 2、创建救美骑士类
    • 2、创建救美骑士类
    • 3、创建旧救美骑士测试类
    • 3、配置救美骑士Bean
    • 5、创建新救美骑士测试类

采用构造方法注入属性值

1、创建救美任务类

  • net.huawei.spring.day01包里创建RescueDamselQuest
    继企业级信息系统开发学习1.1 —— Spring配置文件管理Bean_第1张图片

  • Rescue Damsel - 拯救少女

package net.huawei.spring.day01;
/**
 * 功能:救美任务类
 */
public class RescueDamselQuest {
    public void embark() {
        System.out.println("执行救美任务……");
    }
}

2、创建救美骑士类

  • net.huawei.spring.day01包里创建DamselRescuingKnight
    继企业级信息系统开发学习1.1 —— Spring配置文件管理Bean_第2张图片
package net.huawei.spring.day01;

/**
 * 功能:救美骑士类
 */
public class RescueDamselKnight {
    private String name;
    private RescueDamselQuest rescueDamselQuest;

    /**
     * 有参构造方法
     *
     * @param name
     * @param rescueDamselQuest
     */
    public RescueDamselKnight(String name, RescueDamselQuest rescueDamselQuest) {
        this.name = name;
        this.rescueDamselQuest = rescueDamselQuest;
    }

    public void embarkOnQuest() {
        System.out.print("救美骑士[" + name + ']');
        rescueDamselQuest.embark();
    }
}

2、创建救美骑士类

  • net.huawei.spring.day01包里创建DamselRescuingKnight
    继企业级信息系统开发学习1.1 —— Spring配置文件管理Bean_第3张图片
package net.huawei.spring.day01;

/**
 * 功能:救美骑士类
 */
public class RescueDamselKnight {
    private String name;
    private RescueDamselQuest rescueDamselQuest;

    /**
     * 有参构造方法
     *
     * @param name
     * @param rescueDamselQuest
     */
    public RescueDamselKnight(String name, RescueDamselQuest rescueDamselQuest) {
        this.name = name;
        this.rescueDamselQuest = rescueDamselQuest;
    }

    public void embarkOnQuest() {
        System.out.print("救美骑士[" + name + ']');
        rescueDamselQuest.embark();
    }
}

代码说明:通过构造方法来设置骑士的姓名与要执行的任务。

3、创建旧救美骑士测试类

  • test/java/net.huawei.spring.day01包里创建TestRescueDamselKnightOld
    继企业级信息系统开发学习1.1 —— Spring配置文件管理Bean_第4张图片
package net.huawei.spring.day01;

import org.junit.Test;

/**
 * 功能:采用传统方式测试救美骑士类
 */
public class TestRescueDamselKnightOld {
    @Test
    public void testRescueDamselKnight() {
        // 创建救美任务对象
        RescueDamselQuest rescueDamselQuest = new RescueDamselQuest();
        // 创建救美骑士对象
        RescueDamselKnight rescueDamselKnight = new RescueDamselKnight("格拉海德", rescueDamselQuest);
        // 救美骑士执行任务
        rescueDamselKnight.embarkOnQuest();
    }
}

  • 运行testRescueDamselKnight()测试方法,查看结果
    继企业级信息系统开发学习1.1 —— Spring配置文件管理Bean_第5张图片

3、配置救美骑士Bean

  • 在Spring配置文件里创建救美骑士Bean
    继企业级信息系统开发学习1.1 —— Spring配置文件管理Bean_第6张图片
  • arg: argument 参数

    <bean id="rescueDamselQuest" class="net.zwh.spring.day01.RescueDamselQuest"/>
    
    <bean id="damselRescuingKnight" class="net.zwh.spring.day01.RescueDamselKnight">
        <constructor-arg value="格拉海德"/>
        <constructor-arg ref="rescueDamselQuest"/>
    bean>

5、创建新救美骑士测试类

  • test/java/net.huawei.spring.day01包里创建TestRescueDamselKnightNew
    继企业级信息系统开发学习1.1 —— Spring配置文件管理Bean_第7张图片
package net.huawei.spring.day01;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * 功能:采用Spring容器测试救美骑士类
 */
public class TestRescueDamselKnightNew {
    private ClassPathXmlApplicationContext context; // 基于类路径XML配置文件的应用容器(Bean工厂)

    @Before // 每次测试方法执行前都要执行的代码就放在此方法里
    public void init() {
        // 基于Spring配置文件创建应用容器
        context = new ClassPathXmlApplicationContext("xmlconfig/spring-config.xml");
        // 提示用户
        System.out.println("Spring应用容器已创建~");
    }

    @Test
    public void testRescueDamselKnight() {
        // 根据名称从应用容器中获取救美骑士对象
        RescueDamselKnight rescueDamselKnight = (RescueDamselKnight) context.getBean("rescueDamselKnight");
        // 救美骑士执行任务
        rescueDamselKnight.embarkOnQuest();
    }

    @After // 每次测试方法执行后都要执行的代码就放在此方法里
    public void destroy() {
        // 关闭应用容器
        context.close();
        // 提示用户
        System.out.println("Spring应用容器已关闭~");
    }
}

  • 运行testRescueDamselKnight()测试方法,查看效果
    继企业级信息系统开发学习1.1 —— Spring配置文件管理Bean_第8张图片

你可能感兴趣的:(Java,Spring,spring,学习,java)