天天看点

Spring Boot 自定义starter

starter:

这个场景需要使用到的依赖是什么?

如何编写自动配置?

自定义starter模式是什么?

Spring Boot 定义starter通用套路: 启动只是用来做依赖导入的; 专门来写一个自动配置模块; 启动器依赖自动配置; 别人使用只需要引入启动器(starter)即可; 命名规则: 自定义启动器名-spring-boot-starter 例如 mybatis-spring-boot-starter;(官方一般把命名放在后面,如org.springframework.boot.spring-boot-starter-logging)

2.1 创建空项目

Spring Boot 自定义starter
Spring Boot 自定义starter

2.2 添加maven模块

Spring Boot 自定义starter
Spring Boot 自定义starter
Spring Boot 自定义starter
Spring Boot 自定义starter

2.3 继续添加Spring Initializr (该模块意义为 为空的starter即bd2star-spring-boot-starter提供引用)

Spring Boot 自定义starter
Spring Boot 自定义starter
不引入任何模块 目录结构如下:
Spring Boot 自定义starter

2.4 启动器pom.xml 中引入自动配置模块

Spring Boot 自定义starter
Spring Boot 自定义starter

目录结构为:

Spring Boot 自定义starter

创建HelloService.java

创建HelloProperties.java

创建HelloServiceAutoConfiguration.java

在resources文件夹下创建META-INF文件夹 并在内部创建spring.factories文件(参考org/springframework/boot/spring-boot-autoconfigure/2.1.0.RELEASE/spring-boot-autoconfigure-2.1.0.RELEASE.jar!/META-INF/spring.factories下出如下配置)

先安装自动配置到仓库中 再安装starter

Spring Boot 自定义starter

成功后控制台如下:

Spring Boot 自定义starter

新建 Spring Boot 项目 并引入web依赖

Spring Boot 自定义starter
Spring Boot 自定义starter

在新的测试项目pom.xml文件中引入我们自定义的starter

Spring Boot 自定义starter

目录结构如下:

Spring Boot 自定义starter

新建HelloController.java

修改application.properties