项目开关自动生成工具config-switcher

3 篇文章 0 订阅
2 篇文章 0 订阅

简介

项目中配开关遇到的问题
  • 1.开关经常忘记在生产环境配置
  • 2.开关很多是一次性的,很多僵尸配置
  • 3.开关的配置和其他配置在同一个文件,杂乱,影响阅读
  • 4.时间到的时候忘记开开关或者关开关
  • 5.开关起名字令人头疼,而且开关的名字只有开发自己知道,不好沟通和 交接,一段时间以后开发自己都不记得了
  • 6.开关会有代码侵入

此组件就是解决上述问题
项目地址:https://github.com/chunlaiqingke/config-switcher/tree/master

使用说明

把项目打包(mvn install)到本地仓库,或者使用公司的gitlab的maven deploy按钮打包到公司的nexus

项目中添加依赖(版本号按照自己的打包来)

<dependency>
    <groupId>com.handsome</groupId>
    <artifactId>config-switcher</artifactId>
    <version>1.0.0</version>
    <scope>compile</scope>
</dependency>

在启动类上添加启动注解@EnableConfigSwitcher,让jar包生效

@SpringBootApplication
@EnableConfigSwitcher
public class HelloWorldApplication {

    public static void main(String[] args) {
        SpringApplication.run(HelloWorldApplication.class);
    }
}

在项目的resources下创建portal-openapi.properties文件,文件内容就是你的apollo地址

apollo.openapi.portalUrl=http://localhost:8070
apollo.openapi.token=e7f87afa6b74a86d8d2896fe02c889ff587e4aed
apollo.openapi.appid=springbootdemo
apollo.openapi.env=dev

最后在apollo的项目中添加名称为config-switcher.properties的namespace即可

到这,项目的配置就结束了~~~~

然后创建一个开关类,最好和业务相关,比如OrderSwitcher

@Component
public class ControllerSwitcher {

    @Switcher
    public boolean isOk(){
        return false;
    }
}

使用时调用这个isOk的方法即可,会自动使用config中的配置,如果获取config失败,就会返回方法默认的return值

@RestController
@RequestMapping("hello")
public class HelloController {

    @Autowired
    ControllerSwitcher controllerSwitcher;

    @RequestMapping("/")
    public String hello(){
        if(controllerSwitcher.isOk()){
            return "ok";
        }
        return "not ok";
    }
}

有问题加群(qq群:574948729)或者关注公众号留言
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值