Spring Cloud系列四 之 配置信息Server

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

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

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

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

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

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

只要引入这个依赖就可以


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

  
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <groupId>com.didispace</groupId>
  6. <artifactId>config-server</artifactId>
  7. <version>1.0.0</version>
  8. <packaging>jar</packaging>
  9. <name>config-server</name>
  10. <description>Spring Cloud project</description>
  11. <parent>
  12. <groupId>org.springframework.boot</groupId>
  13. <artifactId>spring-boot-starter-parent</artifactId>
  14. <version>1.3.5.RELEASE</version>
  15. <relativePath/> <!-- lookup parent from repository -->
  16. </parent>
  17. <properties>
  18. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  19. <java.version>1.8</java.version>
  20. </properties>
  21. <dependencies>
  22. <dependency>
  23. <groupId>org.springframework.boot</groupId>
  24. <artifactId>spring-boot-starter-test</artifactId>
  25. <scope>test</scope>
  26. </dependency>
  27. <dependency>
  28. <groupId>org.springframework.cloud</groupId>
  29. <artifactId>spring-cloud-config-server</artifactId>
  30. </dependency>
  31. </dependencies>
  32. <dependencyManagement>
  33. <dependencies>
  34. <dependency>
  35. <groupId>org.springframework.cloud</groupId>
  36. <artifactId>spring-cloud-dependencies</artifactId>
  37. <version>Brixton.RELEASE</version>
  38. <type>pom</type>
  39. <scope>import</scope>
  40. </dependency>
  41. </dependencies>
  42. </dependencyManagement>
  43. <build>
  44. <plugins>
  45. <plugin>
  46. <groupId>org.springframework.boot</groupId>
  47. <artifactId>spring-boot-maven-plugin</artifactId>
  48. </plugin>
  49. </plugins>
  50. </build>
  51. </project>

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

  • 注意不能使用application.properties

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

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

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

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

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

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

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


  
  1. {
  2. "name": "didispace",
  3. "profiles": [
  4. "test"
  5. ],
  6. "label": "master",
  7. "version": null,
  8. "propertySources": [
  9. {
  10. "name": "classpath:/didispace-test.properties",
  11. "source": {
  12. "from": "local-test"
  13. }
  14. },
  15. {
  16. "name": "classpath:/didispace.properties",
  17. "source": {
  18. "from": "local"
  19. }
  20. }
  21. ]
  22. }

问题五:实时刷新配置

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

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

    • refresh接口要引入节点依赖

  
  1. 1<dependency>
  2. 2 <groupId>org.springframework.boot</groupId>
  3. 3 <artifactId>spring-boot-starter-actuator</artifactId>
  4. 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个月内不可修改。