使用springboot时我们经常会配置maven调用官方或第三方提供的springboot-start来获取我们需要的功能模块;那么我们如何自己提供一个springboot-starter给别人或自己其他项目中调用呢?
通过如下方式我们可以自定义一个springboot-starter生成秘钥。
2 配置pom.xml
commons-codec
commons-codec
1.15
org.springframework.boot
spring-boot-configuration-processor
true
org.springframework.boot
spring-boot-autoconfigure
3 新建一个Setting.java 获取application.properties 中以digest开头的配置信息
@Component
@ConfigurationProperties(prefix = "digest")
public class Settings {
private String type;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
application.properties
spring.application.name=secretkey-springboot-starter
digest.type= sha
4新建conf.java按条件加载配置信息,@ConditionalOnProperty条件加载配置信息
@Configuration
@EnableConfigurationProperties(Settings.class)
public class Config {
//条件加载 档digest.type=md5时加载此方法
@Bean
@ConditionalOnProperty(prefix = "digest",name = "type",havingValue = "md5")
public Digest Md5Digest(){
System.out.println("-----------使用md5加密------------");
return new Md5Digest();
}
@Bean
@ConditionalOnProperty(prefix = "digest",name = "type",havingValue = "sha")
public Digest ShaDigest(){
System.out.println("-----------使用sha加密------------");
return new ShaDigest();
}
}
5新建对外调用的接口 Digest;当其他项目中调用这个springboot-start时使用
/**
* 对外提供的接口
*/
public interface Digest {
String digest(String raw);
}
6实现第5步中的接口功能
public class Md5Digest implements Digest {
@Override
public String digest(String raw) {
System.out.println("使用md5加密");
return DigestUtils.md5Hex(raw);
}
}
public class ShaDigest implements Digest {
@Override
public String digest(String raw) {
System.out.println("使用sha加密");
return DigestUtils.sha256Hex(raw);
}
}
7在resources目录中新建一个META-INF文件;新建spring.factories;通过这步设置才能使其他项目在调用这个springboot-start时application中的配置起作用。这部分比较关键哦
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.binkai.secretkey.conf.Config
8删除或注释掉pom.xml中的以下部分
9发布到我们maven仓库中
10在其他项目中调用
留言与评论(共有 0 条评论) “” |