站长工具的使用seo综合查询运营,创建公司策划书,淘宝客做网站自动更新,网站需求设计文档文章目录 前言技术积累SpringBoot starter简介starter的开发步骤 实战演示自定义starter的使用写在最后 前言
各位大佬在使用springboot或者springcloud的时候都会根据需求引入各种starter#xff0c;比如gateway、feign、web、test等等的插件。当然#xff0c;在实际的业务… 文章目录 前言技术积累SpringBoot starter简介starter的开发步骤 实战演示自定义starter的使用写在最后 前言
各位大佬在使用springboot或者springcloud的时候都会根据需求引入各种starter比如gateway、feign、web、test等等的插件。当然在实际的业务场景中也会有将第三方组件整合为starter供其他项目接入。那么我们今天就分享一波SpringBoot自定义 Starter及使用。
技术积累
SpringBoot starter简介
starter是Spring Boot中的一个非常重要的概念Starter相当于模块它能将模块所需的依赖整合起来并对模块内的Bean根据环境 条件进行自动配置。使用者只需要依赖相应功能的Starter无需做过多的配置和依赖Spring Boot就能自动扫描并加载相应的模块。 starter的开发步骤
新建Maven项目在项目的POM文件中定义使用的依赖 新建配置类写好配置项和默认的配置值指明配置项前缀 新建自动装配类使用Configuration和Bean来进行自动装配 新建spring.factories文件指定Starter的自动装配类
实战演示
自定义一个简单的starter 本次我们就简单整合一个工具类、一个api接口demo供大家了解创建流程对于其他的配置项或者涉及数据等等也都在这个基础的starter进行叠加而已。
1、新建Maven项目
选中两个插web和lombok,点击finish完成项目创建
2、pom中增加项目依赖不传递配置以及配置maven打包生成可执行依赖jar
!--项目依赖不传递
例如project1依赖a.jar(optionaltrue),project2依赖project1,则project2不依赖a.jar--
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-configuration-processor/artifactIdoptionaltrue/optional
/dependencyplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfiguration!--配置可执行jar的名称不对原jar重命名为.original--classifierexec/classifierexcludesexcludegroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/exclude/excludes/configuration
/plugin3、删除不必要的文件最后剩下的项目格式为
4、启动类取消自动配置注释并清空方法
5、.新建spring.factories文件指定starter的自动装配类 在resource下新建META-INF目录然后新增spring.factories自动装配文件并在文件中指定装配类
org.springframework.boot.autoconfigure.EnableAutoConfiguration\com.example.demostarter.DemoStarterApplication6、新增测试接口和测试类
/*** TestController* author Administrator* version 1.0* date 2024/1/20 0020 15:50*/
RestController
public class TestController {/*** TestStarterApi* param str* author Administrator* date 2024/1/20 0020 15:51 * return java.lang.String*/GetMapping(/testStartApi)public String TestStarterApi(String str){return this is a TestStarterApi data is str;}}/*** TestStartUtils* author Administrator* version 1.0* date 2024/1/20 0020 15:52*/
public class TestStartUtils {/*** test* author Administrator* date 2024/1/20 0020 15:53 * return void*/public static void test(){System.err.println(this is a TestStartUtils test method);}
}7、将demo-starter安装到本地仓库进行测试当然也可以部署到远程仓库
也可以用命令 mvn install
至此整个Starter开发完毕已经install本地仓库,deploy远程仓库同理mvn deploy
自定义starter的使用
1、在需要使用starter的maven项目pom中引入demo-starter
!--demo-starter--
dependencygroupIdcom.example/groupIdartifactIddemo-starter/artifactIdversion0.0.1-SNAPSHOT/version
/dependency2、编写测试类并在启动类配置扫描包位置
/*** TestdemoApplicationTests* author Administrator* date 2024/1/20 0020 16:33 */
SpringBootTest
class TestdemoApplicationTests {/*** contextLoads* author Administrator* date 2024/1/20 0020 16:33 * return void*/Testpublic void contextLoads() {TestStartUtils.test();}}ComponentScan(com.example)
SpringBootApplication
public class TestdemoApplication {public static void main(String[] args) {SpringApplication.run(TestdemoApplication.class, args);}}3、测试引入starter效果展示 3.1 可以直接依赖starter中的类并可以进行调用
3.2 由于启动类配置了扫描包位置可以扫到starter的api
写在最后
SpringBoot自定义 Starter及使用还是非常简单我们在创建的时候需要注意maven插件需要增加可执行jar配置在resource下需要指定starter的自动装配类即可在使用starter的项目中需要按需增加扫描包以保证框架可以获取到我们的starter文件。