Spring Cloud系列四 之 配置信息Server

举报
西魏陶渊明 发表于 2022/09/25 04:16:42 2022/09/25
【摘要】 小伙伴我刚接触的时候,一脸懵逼,心多有很多疑惑。经历了一周断断续续的开发和学习终于有所头目,故分享给大家,希望大家学习路上少走弯路。 本篇文章,通过提出问题的形式,在带领大家一步一步解决问题。 问题一:如何创建配置信息服务器 注意两点 1.让配置信息服务器默认从本地文件夹中获得配置信息2.让配置信息服务器从githu...

小伙伴我刚接触的时候,一脸懵逼,心多有很多疑惑。经历了一周断断续续的开发和学习终于有所头目,故分享给大家,希望大家学习路上少走弯路。
本篇文章,通过提出问题的形式,在带领大家一步一步解决问题。

问题一:如何创建配置信息服务器

  • 注意两点
    • 1.让配置信息服务器默认从本地文件夹中获得配置信息
    • 2.让配置信息服务器从github或者码云中读取配置信息
    • 3.应用启动要引入那些依赖,pom文件是什么样

      1:
      #从本地文件夹中读取,默认是src/main/resource
       spring.profiles.active=native
  
 

      2:
      #从服务器中读取
      # github服务器中的个人仓库
      spring.cloud.config.server.git.uri=http://git.oschina.net/didispace/SpringBoot-Learning/
      #从仓库中选择的配置目录
      spring.cloud.config.server.git.searchPaths=Chapter9-1-4/config-repo
      #登录用户名
      spring.cloud.config.server.git.username=username
      #用户密码
      spring.cloud.config.server.git.password=password
  
 

只要引入这个依赖就可以


             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-config-server</artifactId>
         </dependency>
  
 
  • 完整POM文件

      <?xml version="1.0" encoding="UTF-8"?>
      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
         <modelVersion>4.0.0</modelVersion>
         <groupId>com.didispace</groupId>
         <artifactId>config-server</artifactId>
         <version>1.0.0</version>
         <packaging>jar</packaging>
         <name>config-server</name>
         <description>Spring Cloud project</description>
         <parent>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-parent</artifactId>
             <version>1.3.5.RELEASE</version>
             <relativePath/> <!-- lookup parent from repository -->
         </parent>
         <properties>
             <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
             <java.version>1.8</java.version>
         </properties>
         <dependencies>
             <dependency>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-starter-test</artifactId>
                 <scope>test</scope>
             </dependency>
             <dependency>
                 <groupId>org.springframework.cloud</groupId>
                 <artifactId>spring-cloud-config-server</artifactId>
             </dependency>
         </dependencies>
         <dependencyManagement>
             <dependencies>
                 <dependency>
                     <groupId>org.springframework.cloud</groupId>
                     <artifactId>spring-cloud-dependencies</artifactId>
                     <version>Brixton.RELEASE</version>
                     <type>pom</type>
                     <scope>import</scope>
                 </dependency>
             </dependencies>
         </dependencyManagement>
         <build>
             <plugins>
                 <plugin>
                     <groupId>org.springframework.boot</groupId>
                     <artifactId>spring-boot-maven-plugin</artifactId>
                 </plugin>
             </plugins>
         </build>
      </project>
  
 

问题二:其他项目如何读取 配置服务器中的配置

  • 注意不能使用application.properties

上面这些属性必须配置在bootstrap.properties中,config部分内容才能被正确加载。因为config的相关配置会先于application.properties

  • 创建bootstrap.properties配置,来指定config server,例如:

      #读取的问题名
      spring.application.name=didispace
      #读取的文件环境
      spring.cloud.config.profile=dev
      #配置文件所在的分支
      spring.cloud.config.label=master
      #配置服务器地址
      spring.cloud.config.uri=http://localhost:7001/
      #当前项目的启动端口
      server.port=7002
  
 

问题三:重点来了,配置文件如何命名,服务器才能正确读取

  • URL与配置文件的映射关系如下:

    • /{application}/{profile}[/{label}]
    • /{application}-{profile}.yml
    • /{label}/{application}-{profile}.yml
    • /{application}-{profile}.properties
    • /{label}/{application}-{profile}.properties

问题四:如何从配置服务器中 请求获得不同环境的配置信息


      {
          "name": "didispace",
         "profiles": [
             "test"
          ],
         "label": "master",
         "version": null,
         "propertySources": [
              {
                  "name": "classpath:/didispace-test.properties",
                 "source": {
                      "from": "local-test"
                  }
              },
              {
                  "name": "classpath:/didispace.properties",
                 "source": {
                      "from": "local"
                  }
              }
          ]
      }
  
 

问题五:实时刷新配置

  • 如何实时刷新,修改git仓库中的配置信息,实时更新到应用中

  • 然后在配置服务器:http://localhost:7002/refresh

    • refresh接口要引入节点依赖

      1<dependency>
      2   <groupId>org.springframework.boot</groupId>
      3   <artifactId>spring-boot-starter-actuator</artifactId>
      4</dependency>
  
 

文章来源: springlearn.blog.csdn.net,作者:西魏陶渊明,版权归原作者所有,如需转载,请联系作者。

原文链接:springlearn.blog.csdn.net/article/details/102425263

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。