参考:https://www.cnblogs.com/2YSP/p/10911166.html
命名规范: Spring官方的Starter命名格式一般是spring-boot-starter-{name},比如spring-boot-starter-web 。而非官方的,官方建议artifactId命名应该遵循 {name}-spring-boot-starter的格式,如example-spring-boot-starter。
一、引入依赖
<!--starter相关 编译时生成 spring-configuration-metadata.json ,此文件主要给IDE使用-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<!--starter相关 自动装配-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
二、配置文件类(使用redis配置举例)
@Data
@ConfigurationProperties(prefix = "spring.redis")
public class RedisProperties {
/**
* 主机地址
*/
private String host;
/**
* 密码
*/
private String password;
/**
* 数据库
*/
private int database;
/**
* 端口
*/
private int port;
/**
* 集群配置
*/
private ClusterProperties cluster;
@Data
public static class ClusterProperties{
/**
* 是否开启集群
*/
private Boolean enabled;
/**
* 集群节点
*/
private String nodes;
/**
* 集群时重定向次数
*/
private int maxRedirects = 8;
}
三、编写service类
public class RedisService{
private String host;
public StarterService(String host){
this.host= host;
}
}
四、编写配置类
@Configuration
//@ConditionalOnClass(RedisService.class)
//@ConditionalOnProperty(prefix = "cn.sp",value = "enable",matchIfMissing = true)
@EnableConfigurationProperties(RedisProperties.class)
public class CommonAutoConfigure {
@Autowired
private RedisProperties properties
@Bean
public RedisService redisServiceInit() {
return new RedisService(properties.getHost());
}
}
最后创建spring.factories
在 resources/META-INF/ 文件夹下创建spring.factories文件
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.winyo.commonstarter.config.CommonAutoConfigure
执行mvn install命令打包到本地
在另外一个项目添加依赖
<!--common-starter-->
<dependency>
<groupId>com.winyo</groupId>
<artifactId>common-starter</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>