文章目录
一、利用注解配置类取代Spring配置文件
(一)在net.lbj.spring包里创建lesson03子包
将lesson02子包里的类与接口复制到lesson03子包
(二)在lesson03子包中创建Spring配置类来取代Spring配置文件
注解:@ComponentScan(“net.hw.spring.lesson03”)相当于配置文件spring_config.xml里的<context:component-scan base-package=“net.hw.spring.lesson03”/>
package net.lbj.spring.lesson03;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
/**
* 注解配置类
* 20210317
*/
@Configuration //标明是Spring配置类
@ComponentScan("net.lbj.spring.lesson03") //组件扫描表
public class AnnotationConfig {
}
(三)创建测试类及其运行结果
- 测试类
package net.lbj.spring.lesson03;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
/**
* 测试骑士类
* 20210317
*/
public class TestKnight {
private AnnotationConfigApplicationContext context;
@Before
public void init() {
//基于Spring配置类创建应用容器
context = new AnnotationConfigApplicationContext(AnnotationConfig.class);
}
@Test
public void testBraveKnight() {
//根据名称从应用容器里获取勇敢骑士对象
BraveKnight braveKnight = (BraveKnight) context.getBean("mike");
//勇敢骑士执行任务
braveKnight.embarkOnQuest();
}
@Test
public void testDamselRescuingKnight() {
//根据名称从应用容器里获取救美骑士对象
DamselRescuingKnight damselRescuingKnight = (DamselRescuingKnight) context.getBean("damselRescuingKnight");
//救美骑士执行任务
damselRescuingKnight.embarkOnQuest();
}
@After
public void destroy() {
//关闭应用容器
context.close();
}
}
- 运行结果