springboot工程接入apollo配置中心

工作中遇到应用配置管理的问题,在实际部署时应用会多节点部署,将配置统一到配置中心后,可以方便配置的管理,做到配置的一处修改即可。避免了登陆到部署的各个节点进行逐个修改。同时配置中心支持多命名空间,可以将公用的redis配置、mysql配置放到单独的命名空间,需要使用的模块引用对应的命名空间即可。

为了减少配置的引用,以及同时支持不接入配置中心的情况,笔者使用了稍微高一点的客户端版本。

         <dependency>
            <groupId>com.ctrip.framework.apollo</groupId>
            <artifactId>apollo-client</artifactId>
            <version>1.4.0</version>
         </dependency>

从而在spring boot的应用中,直接在application.properties中直接配置是否启用配置中心即可。

#是否启用配置中心
apollo.bootstrap.enabled = true
app.id=test_app
apollo.meta=http://172.16.6.11:8080/
apollo.bootstrap.eagerLoad.enabled=true
#多命名空间应,这里直接引用了redis的配置
apollo.bootstrap.namespaces = application,TEST1.common-redis

配置中会存在密码的信息,如果直接在配置中心明文配置,会存在密码泄露的风险,可以集成

        <dependency>
            <groupId>com.github.ulisesbocchio</groupId>
            <artifactId>jasypt-spring-boot-starter</artifactId>
            <version>1.18</version>
        </dependency>

在配置配置中心以ENC(加密后的密文)作为值。

  public static void main(String[] args) {
        BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
        //加密所需的加密密钥
        textEncryptor.setPassword("PwdPwd");
        //要加密的数据(数据库的用户名或密码)
        String encpwd = textEncryptor.encrypt("dbPwd");
        System.out.println("username:"+encpwd);
}

加密使用的密钥,可以配置在application.properties里面,如下

jasypt.encryptor.password=pwdpwd

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值