1. 新建一个SpringBoot项目
添加依赖,Lombok,Spring Configuration Processor 和其他需要的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
spring-boot-configuration-processor 的作用是自动生成配置的代码提示,这样其他人引用你的包时,在 application.yml 中写入配置时就能自动提示。
2. 修改 pom 文件的版本号,并删除 build
<groupId>com.han</groupId>
<artifactId>my-sdk</artifactId>
<version>0.0.1</version>
这里 groupId 和 artifactId 都可以自定义
注意:build部分一定要删除,其中 plugins 部分配置了一个插件,即 spring-boot-maven-plugin,用于在生成的 jar 包中内置tomcat。
3. 删除原本自动创建的启动类,新建一个类,并添加需要用到的依赖
@Data
@Configuration
@ConfigurationProperties(prefix = "myapi.client")
@ComponentScan
public class MyClientConfig {
/**
* appId
*/
private String appId;
/**
* 密钥
*/
private String appSecret;
/**
* 用户 id
*/
private String userId;
@Bean
public MyApiClient myApiClient() {
return new MyApiClient(appId, appSecret, userId);
}
}
4. 在 resources 目录下新建 META-INF 目录,并创建 spring.factories 文件,并指定配置类的目录
# spring boot starter
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.han.MyClientConfig
5. install 打包,在本地的仓库生成依赖
6. 在其他项目中添加为依赖,复制 groupId,artifactId,version
<!--自己创建的SDK-->
<dependency>
<groupId>com.han</groupId>
<artifactId>my-sdk</artifactId>
<version>0.0.1</version>
</dependency>
7. 在配置文件当中就可以引用 starter 中设置的属性
myapi:
client:
appId: 1298612
appSecret: asdjklisybfqz
userId: 136192639812
8. 可以用@Resource引入 starter 当中定义的bean
@Resource
MyApiClient myApiClient;
这样就成功创建了自己的starter(★,°:.☆( ̄▽ ̄)/$:.°★