前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微服务架构之Spring Boot(二十四)

微服务架构之Spring Boot(二十四)

作者头像
用户1289394
发布2022-04-07 19:58:28
1.8K0
发布2022-04-07 19:58:28
举报
文章被收录于专栏:Java学习网Java学习网

24.1配置随机值

RandomValuePropertySource 对于注入随机值(例如,进入秘密或测试用例)非常有用。它可以生成整数,长整数,uuids或字符串,如以下

示例所示:

my.secret=${random.value}

my.number=${random.int}

my.bignumber=${random.long}

my.uuid=${random.uuid}

my.number.less.than.ten=${random.int(10)}

my.number.in.range=${random.int[1024,65536]}

random.int* 语法为 OPEN value (,max) CLOSE ,其中 OPEN,CLOSE 为任意字符, value,max 为整数。如果提供 max ,那么 value 是最小

值, max 是最大值(不包括)。

24.2访问命令行属性

默认情况下, SpringApplication 将任何命令行选项参数(即以 -- 开头的参数,例如 --server.port=9000 )转换为 property ,并将它们

添加到Spring Environment 。如前所述,命令行属性始终优先于其他属性源。

如果您不希望将命令行属性添加到 Environment ,则可以使用 SpringApplication.setAddCommandLineProperties(false) 禁用它们。

24.3应用程序Property文件

SpringApplication 从以下位置的 application.properties 文件加载属性,并将它们添加到Spring Environment :

1. 当前目录的 /config 子目录

2. 当前目录

3. classpath /config 包

4. 类路径根

列表按优先级排序(在列表中较高位置定义的属性将覆盖在较低位置中定义的属性)。

您还可以使用YAML('。mil')文件替代'.properties'。

如果您不喜欢 application.properties 作为配置文件名,则可以通过指定 spring.config.name 环境属性来切换到另一个文件名。您还可以

使用 spring.config.location 环境属性(以逗号分隔的目录位置或文件路径列表)来引用显式位置。以下示例显示如何指定其他文件名:

$ java -jar myproject.jar --spring.config.name=myproject

以下示例显示如何指定两个位置:

$ java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties

很早就使用 spring.config.name 和 spring.config.location 来确定必须加载哪些文件,因此必须将它们定义为环境属性(通

常是OS环境变量,系统属性或命令行参数)。

如果 spring.config.location 包含目录(而不是文件),则它们应以 / 结束(并且在运行时,在加载之前附加从 spring.config.name 生成

的名称,包括特定于配置文件的文件名) 。spring.config.location 中指定的文件按原样使用,不支持特定于配置文件的变体,并且被任何

特定于配置文件的属性覆盖。

以相反的顺序搜索配置位置。默认情况下,配置的位置为 classpath:/,classpath:/config/,file:./,file:./config/ 。生成的搜索顺序

如下:

1. file:./config/

2. file:./

3. classpath:/config/

4. classpath:/

使用 spring.config.location 配置自定义配置位置时,它们会替换默认位置。例如,如果 spring.config.location 配置了

值 classpath:/custom-config/,file:./custom-config/ ,则搜索顺序将变为:

1. file:./custom-config/

2. classpath:custom-config/

或者,当使用 spring.config.additional-location 配置自定义配置位置时,除了默认位置外,还会使用它们。在默认位置之前搜索其他位

置。例如,如果配置了 classpath:/custom-config/,file:./custom-config/ 的其他位置,则搜索顺序将变为以下内容:

1. file:./custom-config/

2. classpath:custom-config/

3. file:./config/

4. file:./

5. classpath:/config/

6. classpath:/

此搜索顺序允许您在一个配置文件中指定默认值,然后有选择地覆盖另一个配置文件中的值。您可以在 application.properties (或您使

用 spring.config.name 选择的任何其他基本名称)中的某个默认位置为您的应用程序提供默认值。然后,可以在运行时使用位于其中一个自定

义位置的不同文件覆盖这些默认值。

如果使用环境变量而不是系统属性,则大多数操作系统都不允许使用句点分隔的键名称,但您可以使用下划线(例

如, SPRING_CONFIG_NAME 而不是 spring.config.name )。

如果应用程序在容器中运行,则可以使用JNDI属性(在 java:comp/env 中)或servlet上下文初始化参数来代替环境变量或系统属

性。

本文参与?腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-15,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

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

本文参与?腾讯云自媒体同步曝光计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com