# Spring-boot-test-two
**Repository Path**: Zeight/spring-boot-test-two
## Basic Information
- **Project Name**: Spring-boot-test-two
- **Description**: 实验二
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-10-21
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
东莞理工学院网络空间安全学院
课程名称:企业级开发框架 学期:2020春季
| 实验名称: | 利用SB的自动装配特性实现动态注册组件 | 实验序号: | 二 | 指导老师: | 黎志雄 |
|---|---|---|---|---|---|
| 姓名: | 钟楷瀚 | 学号: | 201841313268 | 班级: | 18网工1班 |
| 实验地址: | 宿舍 | 实验日期: | 2020-10-22 | 实验成绩: | XXX |
# 实验二 利用SB的自动装配特性实现动态注册组件
#### 一、实验目的
1. 掌握Spring Boot的自动配置原理;
2. 掌握Spring框架动态注册Bean的原理;
3. 掌握自动生成元数据文件。
4. 掌握spring框架的事件模型。
#### 二、实验环境
1. JDK 1.8或更高版本
2. Maven 3.6+
3. IntelliJ IDEA
#### 三、实验任务
1. 通过IntelliJ IDEA的Spring Initializr向导创建Spring Boot项目。
2. 创建一个自定义的CommandLineRunner接口的实现类。
3. 创建一个自定义的自动配置类。
4. 创建spring.factories文件。
测试运行程序:
5. 给自动配置类添加有效条件。
a. 利用 @ConditionalOnProperty 注解,添加属性条件。
b. 在application.properties属性文件中添加一个自定义的属性。
c. 切换属性值false/true,观察终端的显示,判断自动装配的配置类是否生效。
6. 自定义的一个Bean,绑定属性值,并生成spring配置类的元数据文件。
a. 创建一个类,并在类上加@ConfigurationProperties注解,设置注解的prefix属性指定绑定的属性的前缀。
b. 在某个配置类上添加@EnableConfigurationProperties,并指定装配的属性Bean。
c. 使用spring boot框架提供的注解处理器生成自定义属性的元数据文件。
7. 根据阅读框架源码,我们可以自定义一个事件发布器,并设置线程池,实现异步发布事件。
a. 自定义的事件发布器。
b. 自定义事件类。
c. 自定义事件监听器。
d. 编写一个测试用例,检查发布事件时,是否使用了多线程异步处理。
e. 测试结果:
8. 自定义 ApplicationReadyEvent 的事件监听器
测试结果: