美文网首页
学习SpringCloud-config踏平的坑

学习SpringCloud-config踏平的坑

作者: 黑仔yt | 来源:发表于2019-04-03 22:14 被阅读0次

    菜鸡黑仔,记录学习SpringCloud随记         2019-04-03

    SpringCloud-config: 配置中心 以及 客户端

    1:配置中心

        1.1 依赖是spring-cloud-config-server  而不是习惯用的各种start的依赖 spring-cloud-starter-config-server(错)    

        1.2 git仓库为私有时 yml配置文件需要账号密码,公开仓库则无所谓,(yml文件写上账号密 会快些)

        1.3 git仓库上的配置文件格式

    application:程序名, profile:配置文件环境, label:git的分支,默认master

    /{application}/{profile}[/{label}]

    /{application}-{profile}.yml

    /{label}/{application}-{profile}.yml

    /{application}-{profile}.properties

    /{label}/{application}-{profile}.properties

    本例子:git上面有  config-server-dev.yml和 config-server-pro.yml

    访问:http://127.0.0.1:2201/config-server/dev

    http://127.0.0.1:2201/config-server/pro

    访问后打印的json数据,其中 "propertySources":[]   为空这样是获取不到git上面的信息,配置中心失败

        1.4 配置文件加密,首先把jce版本的jar放到本地 {JAVA_HOME}/jre/lib/security目录下

    [JCE for JDK8下载地址http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html]

    然后加密密钥需写在 bootstrap.yml文件中(bootstrap.yml优先级比application.yml高),

    对称密钥 encrypt: key: didispace

    写在application.yml中时 出现

    {

     "description":"No key was installed for encryption service",

        "status":""

    }

    配置完后 可以看相关端点,postman请求既可看到端点信息

    /encrypt/status:查看加密功能状态的端点       【get】

    /key:查看密钥的端点

    /encrypt:对请求的body内容进行加密的端点   【post】

    /decrypt:对请求的body内容进行解密的端点   【post】

    相关例子:

        1.5 {cipher}sdfsdfsdffsdfsdfsd    配置文件中通过密钥 加密密文,带上前缀。如果远程属性源包含加密内容(以{cipher}开头的值),则在通过HTTP发送到客户端之前,它们将被解密。

    如果要为config客户端应用程序设置远程配置存储库,可能会包含一个application.yml,例如:不同点 有引号无引号之分

    application.yml

    spring:

      datasource:

        username: dbuser

        password: '{cipher}8121eefc7b082d4c2c5c879e36e3b0a95f3cccebbc03d9b1475f10afdbeeae70'

    .properties文件中的加密值不能用引号括起来,否则不会解密该值:

    application.properties

    spring.datasource.username: dbuser

    spring.datasource.password: '{cipher}8121eefc7b082d4c2c5c879e36e3b0a95f3cccebbc03d9b1475f10afdbeeae70'

    2:客户端

        2.1 客户端指定获取 配置中心 配置文件的config-server-git位置,配置信息需要写在bootstrap.yml中,不然代码中 @value 获取不到配置文件中的信息

    项目启动报错Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'foo' in value "${foo}"

    相关文章

      网友评论

          本文标题:学习SpringCloud-config踏平的坑

          本文链接:https://www.haomeiwen.com/subject/cpmtiqtx.html