使用自定义springboot-starter 封装自己的功能模块

使用springboot时我们经常会配置maven调用官方或第三方提供的springboot-start来获取我们需要的功能模块;那么我们如何自己提供一个springboot-starter给别人或自己其他项目中调用呢?

通过如下方式我们可以自定义一个springboot-starter生成秘钥。

  1. 新建一个springboot项目;

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在其他项目中调用

com.binkai secretkey-springboot-starter 0.0.1-SNAPSHOT

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章