Spring框架学习笔记04:初探Spring——采用Java配置类管理Bean
一、采用Java配置类管理Bean
1、打开项目【SpringDemo2021】
2、创建net.lsy.spring.lesson04包
3、创建杀龙任务类
-
在lesson04子包里创建杀龙任务类 - SlayDragonQuest
package net.lsy.spring.lesson04; /** * 功能:杀龙任务类 * 作者:lsy * 日期:2021年 */ public class SlayDragonQuest { public void embark() { System.out.println("执行杀龙任务。"); } }
4、创建勇敢骑士类
-
在lesson04子包里创建勇敢骑士类 - BraveKnight
package net.lsy.spring.lesson04; /** * 功能:勇敢骑士类 * 作者:lsy * 日期:2020年 */ public class BraveKnight { private SlayDragonQuest slayDragonQuest; public void setSlayDragonQuest(SlayDragonQuest slayDragonQuest) { this.slayDragonQuest = slayDragonQuest; } public void embarkOnQuest() { slayDragonQuest.embark(); } }
5、创建Spring配置类
-
在lesson04子包里创建Spring配置类 - SpringConfig
package net.lsy.spring.lesson04; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * 功能:Spring配置类 * 作者:lsy * 日期:2021年 */ @Configuration // 标明是Spring配置类 public class SpringConfig { @Bean // 基于SlayDragonQuest类创建名为slayDragonQuest的Bean public SlayDragonQuest slayDragonQuest() { return new SlayDragonQuest(); } @Bean("Mike") // 基于BraveKnight类创建名为Mike的Bean public BraveKnight braveKnight() { BraveKnight braveKnight = new BraveKnight(); braveKnight.setSlayDragonQuest(slayDragonQuest()); return braveKnight; } }
6、创建测试类 - TestKnight
- 在/test/java里创建net.lsy.spring.lesson04包,在包里创建TestKnight
package net.lsy.spring.lesson04;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
/**
* 功能:测试骑士类
* 作者:lsy
* 日期:2021年
*/
public class TestKnight {
private AnnotationConfigApplicationContext context; // 基于注解配置类的应用容器
@Before
public void init() {
// 基于注解配置类创建应用容器
context = new AnnotationConfigApplicationContext(SpringConfig.class);
}
@Test
public void testBraveKnight() {
// 根据名称从应用容器里获取勇敢骑士对象
BraveKnight knight = (BraveKnight) context.getBean("Mike");
// 勇敢骑士执行任务
knight.embarkOnQuest();
}
@After
public void destroy() {
// 关闭应用容器
context.close();
}
}
7、运行测试类 - TestKnight
@After
public void destroy() {
// 关闭应用容器
context.close();
}
}
## 7、运行测试类 - TestKnight
![\[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6gHEoWkv-1623813972328)(C:\Users\一枝之栖\AppData\Roaming\Typora\typora-user-images\image-20210616112525862.png)\]](https://img-blog.csdnimg.cn/20210616112745543.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTgwODAxNA==,size_16,color_FFFFFF,t_70)