任务1、两种骑士交换执行任务。
要求勇敢骑士去拯救少女,要求拯救少女骑士去杀龙。
(1)修改勇敢骑士类 - BraveKnight
package net.wz.spring.lesson02;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 功能:勇敢骑士类
* 作者:吴钊
* 日期:2021年3月15日
*/
@Component("mike")
public class BraveKnight implements Knight{
@Autowired//自动装配注解符,可以用@Resource或@Resource或@Inject注解符替换
private Quest rescueDamselQuest;
public void embarkOnQuest(){
rescueDamselQuest.embark();
}
}
(2)修改拯救少女骑士类 - DamselRescuingKnight
package net.wz.spring.lesson02;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
* 功能:救美骑士类
* 作者:吴钊
* 日期:2021年3月15日
*/
@Component
public class DamselRescuingKnight implements Knight{
@Resource
private Quest slayDragonQuest;
public void embarkOnQuest() {
slayDragonQuest.embark();
}
}
(3)运行测试类 - TestKnight
任务2、两种骑士都执行两项任务。
要求勇敢骑士先执行杀龙任务,再执行拯救少女任务。
要求拯救少女骑士先执行拯救少女任务,再执行杀龙任务。
(1)修改勇敢骑士类 - BraveKnight
package net.wz.spring.lesson02;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 功能:勇敢骑士类
* 作者:吴钊
* 日期:2021年3月15日
*/
@Component("mike")
public class BraveKnight implements Knight{
@Autowired//自动装配注解符,可以用@Resource或@Resource或@Inject注解符替换
private Quest rescueDamselQuest;
@Autowired
private Quest slayDragonQuest;
public void embarkOnQuest(){
rescueDamselQuest.embark();
slayDragonQuest.embark();
}
}
(2)修改拯救少女骑士类 - DamselRescuingKnight
package net.wz.spring.lesson02;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
* 功能:救美骑士类
* 作者:吴钊
* 日期:2021年3月15日
*/
@Component
public class DamselRescuingKnight implements Knight{
@Resource
private Quest slayDragonQuest;
@Resource
private Quest rescueDamselQuest;
public void embarkOnQuest() {
slayDragonQuest.embark();
rescueDamselQuest.embark();
}
}
(3)运行测试方法 - testBraveKnight()
(4)运行测试方法 - testDamselRescuingKnight()
任务3、勇敢骑士完成杀龙任务,拯救少女骑士完成拯救少女任务。
package net.wz.spring.lesson02;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* 功能:测试骑士类
* 作者:吴钊
* 日期:2021年03月17日
*/
public class TestKnight {
private ClassPathXmlApplicationContext context;
@Before
public void init() {
// 基于Spring配置创建应用容器
context = new ClassPathXmlApplicationContext("xml_annotation/spring-config.xml");
}
@Test
public void testBraveKnight() {
// 根据名称从应用容器里获取勇敢骑士对象
BraveKnight braveKnight = (BraveKnight) context.getBean("mike");
// 勇敢骑士执行任务
braveKnight.embarkOnQuest();
}
@Test
public void testDamselRescuingKnight() {
// 根据名称从应用容器里获取拯救少女骑士对象
DamselRescuingKnight damselRescuingKnight = (DamselRescuingKnight) context.getBean("damselRescuingKnight");
}
@After
public void destroy() {
// 关闭应用容器
context.close();
}
}
运行TestKnight()