# 实验2 **Repository Path**: deepduckfts/experiment2 ## Basic Information - **Project Name**: 实验2 - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-04-09 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

实验二

课程名称:企业级开发框架专题

学期:2020春季


实验名称利用Spring boot的自动装配特性实现动态注册组件实验序号
姓 名李振辉学 号201741404223班 级17软件2班
实验地点实验日期2020/3/30指导老师黎志雄
教师评语***实验成绩 评阅教师
百分制**
同组同学
## 1、 通过IntelliJ IDEA的Spring Initializr向导创建Spring Boot项目,选择添加Spring Configuration Processor依赖。
## 2、 创建一个自定义的CommandLineRunner接口的实现类。 ![step2](https://images.gitee.com/uploads/images/2020/0409/211255_5f345542_5507626.png "屏幕截图.png") ## 3、 创建一个自定义的自动配置类。 ![step3](https://images.gitee.com/uploads/images/2020/0409/211632_16f5b45e_5507626.png "屏幕截图.png") ## 4、 在resources->META-INF目录下创建spring.factories文件,并添加如下内容 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0409/213050_7d8358fa_5507626.png "屏幕截图.png") ## 5、测试运行程序,由图可知,我们自定义的自动配置类已经生效。 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0409/213245_b0fb42ee_5507626.png "屏幕截图.png") ## 6、给自动配置类添加有效条件,步骤如下: ### 6.1利用@ConditionalOnProperty注解,添加属性条件。 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0409/214105_30037d8f_5507626.png "屏幕截图.png") ### 6.2在application.properties属性文件中添加一个自定义的属性。
### 6.3当config.auto.enable=false时,运行程序自动配置类不生效
## 7、自定义的一个Bean,绑定属性值,并生成spring配置类的元数据文件。 ### 7.1创建一个类,并在类上加@ConfigurationProperties注解,设置注解的prefix属性指定绑定的属性的前缀。 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0409/220122_1092d2fc_5507626.png "屏幕截图.png") ### 7.2在某个配置类上添加@EnableConfigurationProperties,并指定装配的属性Bean。 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0409/220205_4d8b93c4_5507626.png "屏幕截图.png") ## 8、自定义事件发布器,配置线程池使其支持多线程异步处理事件 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0409/221828_05067199_5507626.png "屏幕截图.png") ## 9、自定义事件类 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0409/222227_d237dc93_5507626.png "屏幕截图.png") ## 10、自定义事件监听器 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0409/222726_4e3ed628_5507626.png "屏幕截图.png") ## 11、编写一个测试用例,检查发布事件时,是否使用了多线程异步处理。
## 12、自定义线程池,从图看出自定义线程池生效 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0409/230351_2d9e71e6_5507626.png "屏幕截图.png")