首先,关于自定义启动器命名问题:
官方命名示例:spring-boot-starter-web
第三方命名示例:mybatis-spring-boot-starter
所以我们自定义starter命名规则,可以借鉴mybatis。
即:自定义启动器名-spring-boot-starter
其次,思路问题:
1).我们可以写一个启动器只用来做依赖导入
【例如:dmsdbj-spring-boot-starter】
2).然后专门写一个自动配置模块。
【例如:dmsdbj-spring-boot-strater-autoconfigurer】
3).启动器依赖自动配置,调用者只需要引入启动器(starter)
开始编写代码
1).新建两个maven工程,然后如下图建立相关文件
【有些无用的文件我删除了,比如test文件夹】
2).在启动器工程(dmsdbj-spring-boot-starter)的pom文件中,引入dmsdbj-spring-boot-strater-autoconfigurer工程的依赖。
<!--启动器-->
<dependencies>
<!--引入自动配置模块-->
<dependency>
<groupId>com.dmsdbj</groupId>
<artifactId>dmsdbj-spring-boot-strater-autoconfigurer</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
3).在 dmsdbj-spring-boot-strater-autoconfigurer 工程中,引入相关依赖(根据自定义starter功能,导入相关依赖)。
4).编写dmsdbj-spring-boot-strater-autoconfigurer工程的业务逻辑功能。
我这里的功能:
自定义一个HelloService类,该类中有sayHello( String name )方法,根据传来的name字符串,然后给他拼接一个头字符串和尾字符串,最后返回回去。其中,头字符串和尾字符串均为可配置的,即:由调用方来设定值(从调用方的配置文件中读取。)
4.1,编写HelloProperties类
【该类作用:】
从发起调用者那里的配置文件,读取到头字符串和尾字符串的值,映射给该类中的对应字段。
package com.dmsdbj;
import org.springframework.boot.context.properties.ConfigurationPr