一、课程引入
上一讲,我们利用注解精简了XML配置文件,这一讲,我们准备利用注解配置类取代XML配置文件。
二、利用注解配置类取代Spring配置文件
(一)打开项目【SpringDemo2021】
(二)创建net.tyw.spring.lesson03包
在net.tyw.spring包里创建lesson03子包
(三)移植上一讲的接口和类到当前包
(四)创建注解配置类来取代Spring配置文件
在net.tyww.spring.lesson03包里创建AnnotationConfig类
注解@Configuration声明当前类是一个配置类,对应一个Spring配置文件,可以取而代之。
注解@ComponentScan自动扫描包名下所有使用@Service、@Component、@Repository、@Mapper、@Controller的类,并注册为Bean。
注解@ComponentScan(“net.hw.spring.lesson03”)相当于配置文件里的<context:component-scan base-package=“net.hw.spring.lesson03”/>。
(五)创建测试类 - TestKnight
在test/java里创建net.hw.spring.lesson03包,在包里创建TestKnight
package net.tyw.spring.lesson03;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
/**
* 功能:测试骑士类
* 作者:童严威
* 日期:2021年03月24日
*/
public class TestKnight {
private AnnotationConfigApplicationContext context; // 基于注解配置类的应用容器
@Before
public void init() {
// 基于注解配置类创建应用容器
context = new AnnotationConfigApplicationContext(AnnotationConfig.class);
}
@Test
public void testBraveKnight() {
// 根据名称从应用容器里获取勇敢骑士对象
BraveKnight knight = (BraveKnight) context.getBean("Mike");
// 勇敢骑士执行任务
knight.embarkOnQuest();
}
@Test
public void testDamselRescuingKnight() {
// 根据名称从应用容器里获取救美骑士对象
DamselRescuingKnight knight = (DamselRescuingKnight) context.getBean("damselRescuingKnight");
// 救美骑士执行任务
knight.embarkOnQuest();
}
@After
public void destroy() {
// 关闭应用容器
context.close();
}
}
(六)运行测试类,查看结果
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210622091059717.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3QzMTYzNzg2,size_16,color_FFFFFF,t_70)