# starter-demo **Repository Path**: tongstyle/starter-demo ## Basic Information - **Project Name**: starter-demo - **Description**: 自定义starter - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-07-28 - **Last Updated**: 2024-07-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 自定义Starter [参考视频](https://www.bilibili.com/video/BV1au4m1K7ar/?spm_id_from=333.337.search-card.all.click&vd_source=d0a6cdca5b049660d881413c896bbad1) > 1.启动器简介 Starter相当于模块,它能将所需的依赖整合起来,并对模块内的Bean进行自动配置 > 2.实现流程 功能类-自动配置类-测试工程-拦截器完善功能-增加配置项 > 3.开发功能类 功能描述:输出客户端(根据IP区分)的访问次数 > 4.自动配置类 IPAutoConfiguration类 resources -> META-INF -> spring.factories # SpringBoot 2.7废止,SpringBoot 3全面移除 ```properties org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.tong.ipprint.config.IpPrintAutoConfiguration # 如果有多个,则用逗号隔开 #org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ # com.tong.ipprint.config.IpPrintAutoConfiguration1,\ # com.tong.ipprint.config.IpPrintAutoConfiguration2 ``` resources -> META-INF -> spring -> org.springframework.boot.autoconfigure.AutoConfiguration.imports ```properties # 直接写全类名即可 com.tong.ipprint.config.IpPrintAutoConfiguration ``` 可以看到`IpPrintAutoConfiguration`上并没有加`@Configuration`注解 在spring.factories文件中指定了一个类作为自动配置类时,Spring Boot会自动将其视为一个配置类,即使没有显式地添加`@Configuration`注解也可以使用 > 5.测试工程 ![image-20240728173000912](assets/image-20240728173000912.png) web工程,开发一一个controller,调用自定义的starter 到此其实已经完成大致功能,如果你希望这个业务能够不需要使用`xxxService.xxxMethod()`手动调用方法,可以在`starter`中添加上拦截器 > 6.拦截器完善功能 注意把拦截器配置类也加入`spring.factories`中 > 7.增加配置项 根据配置文件决定显示的格式 `IpProperties` ```java // 默认simple private String display=Display.SIMPLE.value; public enum Display{ SIMPLE("simple"), DETAILS("details"); } ```