# lab2 **Repository Path**: luo-luochen/lab2 ## Basic Information - **Project Name**: lab2 - **Description**: 实验二:利用SB的自动装配特性实现动态注册组件 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-04-13 - **Last Updated**: 2021-04-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 实验二 利用SpringBoot的自动装配特性实现动态注册主键 ## 一、实验目的 1、 掌握SpringBoot的自动装配原理; 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文件 1)spring.factories在META-INF目录下
2)运行
### 5、 给自动配置类添加有效属性 1)利用@ConditionalOnProperty注解,添加属性条件
2)在application.properties属性文件中添加一个自定义属性
3)切换属性值false/true,发现只有相当应才会有输出 ### 6、 自定义的一个Bean,绑定属性值,并生成spring配置类的元数据文件 1)创建一个类,并在类上加@ConfigurationProperties注解,设置注解的prefix属性指定绑定的属性的前缀。
2)在某个配置类上添加@EnableConfigurationProperties,并指定装配的属性Bean。
3)使用spring boot框架提供的注解处理器生成自定义属性的元数据文件。 编译打包项目。观察target目录下的元数据文件。
### 7、 根据阅读框架源码,我们可以自定义一个事件发布器,并设置线程池,实现异步发布事件 a. 自定义的事件发布器:
b. 自定义事件类:
c. 自定义事件监听器:
d. 编写一个测试用例,检查发布事件时,是否使用了多线程异步处理:
运行单元测试结果如下:
### 8、 自定义ApplicationReadyEvent的事件监听器 a. 编写ApplicationReadyEvent的事件监听器:
运行结果: