前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringCloud入门(6)Config

SpringCloud入门(6)Config

作者头像
用户8902830
发布2021-08-12 11:04:44
2950
发布2021-08-12 11:04:44
举报
文章被收录于专栏:CodeNoneCodeNoneCodeNone

前言

已经4天没有更新了,怎么说呢,就很忙,很忙,很忙。主要还是毕业以及从一个城市到另外一个城市的事情,这段时间尽最大可能保持2,3天一更,最晚不超过4,5天一更。

415f82b9ly1glozkiyu0tj20c80a3wes

随着模块的增多,会出现配置文件繁杂的通病,每次都要打开好多层目录才能找到配置文件,SpringCloud中的Config组件就是为了解决这个问题,通过简单的配置就能实现配置文件的统一管理。

Config服务端

引入Config服务端

创建Config空父模块,在下面建立一个config-server子模块,修改「子模块的pom文件」

❝注意是子模块的pom文件,不像以前一样修改的是空父模块的pom文件 ❞

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-server</artifactId>
    </dependency>
</dependencies>
配置文件

因为暂时没必要注册进Eureka中,所以配置文件的编写还是比较简单的

server:
  port: 8101

spring:
  cloud:
    config:
      server:
        git:
          uri: https://gitee.com/cutey_none/springcloud-study-config
          username:
          password:
      label: master

spring.cloud.config.server.git.uri :存放文件的地址,到时候客户端就从这里获取配置文件,可以本地,也可以是git

❝如果是公开仓库,那么usernamepassword 不用写 ❞

因为创建的springcloud-study-config 仓库设置的权限开放的,所以直接用我的也行,自己创建也行,就正常github或者gitee创建一个仓库就好。

❝仓库放置的是各个微服务的配置文件 ❞

例子是管理config-client微服务(后面会创建)的配置文件,所以需要在仓库中创建一个config-client-dev.properties(-dev表示是开发环境下的配置文件)

config-client-dev.properties 文件的内容如下,可以看作是**config-client服务的某些配置**

主启动类

增加@EnableConfigServer 注解以提供config服务支持

@SpringBootApplication
@EnableConfigServer
public class ConfigServer8101 {
    public static void main(String[] args) {
        SpringApplication.run(ConfigServer8101.class, args);
    }
}
测试

SpringCloud Config有自己http服务访问资源的形式

  • /{application}/{profile}[/{label}] >> /config-client/dev
  • /{application}-{profile}.yml >> /config-client-dev.yml
  • /{label}/{application}-{profile}.yml >> /master/config-client-dev.yml
  • /{application}-{profile}.properties >> /config-client-dev.properties
  • /{label}/{application}-{profile}.properties >> /master/config-client-profile.properties

单个运行ConfigServer8101项目即可,用上述5种方式访问资源,可以看到均能成功从服务端访问资源

config客户端

引入config客户端

前面一直说的config-client 就是接下来要创建的模块,最终的项目结构目录如下

接着修改config-client9501 模块的pom文件,注意服务端和客户端引入的依赖是不一样的

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
</dependencies>
配置文件

❝配置文件注意命名是bootstrap.yml

因为客户端要设置服务端的uri,所以应该「优先加载客户端配置文件」

server:
  port: 9501
spring:
  application:
    name: config-client
  cloud:
    config:
      profile: dev
      label: master
      uri: http://localhost:8101

spring.cloud.config.uri :服务端的地址,去哪里取配置文件

主启动类和业务类
@SpringBootApplication
@RestController
public class ConfigClient9501 {
    public static void main(String[] args) {
        SpringApplication.run(ConfigClient9501.class, args);
    }

    @Value("${name}")
    String name;
    @GetMapping("/hi")
    public String hello() {
        return "hello, " + name;
    }
}

❝在这里可能会遇到提示找不到占位符${name},那肯定是哪一方面没有按照步骤来了 ❞

测试

注意哈,上面客户端的配置文件中是没有name这个变量的

服务端的项目不用停止,再开启config-client9501 项目,开启的项目如下

下面访问localhost:9501/hi ,正常的情况下可以看到如下

其实已经抽蛮多的零碎时间来写了,但是有时候遇到了一些问题也还是需要尽可能弄懂再通俗地讲出来,希望能帮到看这篇文章的小伙伴啦!!!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CodeNone 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • Config服务端
    • 引入Config服务端
      • 配置文件
        • 主启动类
          • 测试
          • config客户端
            • 引入config客户端
              • 配置文件
                • 主启动类和业务类
                  • 测试
                  相关产品与服务
                  文档服务
                  文档服务(Document Service,DS)是腾讯云数据万象提供云上文档处理服务,支持多种类型的文件生成图片或 html 格式的预览,可以解决文档内容的页面展示问题,满足 PC、App 等多端的文档在线浏览需求。同时,本产品还提供文本隐私筛查能力,可以有效识别文本中的身份证号、银行卡号、手机号等敏感数据,满足数据可用性和隐私保护的各种要求。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档