依赖于配置文件特定属性的 Spring Boot 属性

     2023-02-27     299

关键词:

【中文标题】依赖于配置文件特定属性的 Spring Boot 属性【英文标题】:Spring Boot properties that depend on profile-specific properties 【发布时间】:2020-12-21 18:20:30 【问题描述】:

我有一个 Spring Boot 应用程序,它应该连接到 dev 和 prod 中的不同服务器,并且在这些服务器上运行许多服务。至此,我已经创建了这样的配置:

application.properties:

server.url.srv1=$server.url.base/srv1
server.url.srv2=$server.url.base/srv2
server.url.srv3=$server.url.base/srv3

应用程序-dev.properties:

server.url.base=http://192.168.86.17

应用程序-prod.properties:

server.url.base=https://10.11.12.3

然而,当我使用 @Value("$server.url.srv1") 初始化一个 bean 参数时,我得到一个字符串“$server.url.base/srv1”而不是“http://192.168.86.17/srv1”或“https:// /10.11.12.3/srv1" 符合预期。

这真的可行吗?如果仅在加载所有配置文件后才解析“$”引用,则应该是这样,但情况似乎并非如此。

我已经在Spring site、Google(它为我指出了另一个有用的Baeldung site)和此处搜索了答案,但没有找到与我的特定问题相关的答案。

【问题讨论】:

【参考方案1】:

application.properties 中的占位符应该可以工作。请参考我在您的用例中添加的示例项目,它按预期工作:https://github.com/itsprav/spring-profile-properties-using-placeholder

【讨论】:

我在你的项目中玩了一会儿,你是对的,在你的项目中这是可行的。我需要再次检查一下我是否没有做一些愚蠢的事情。 ...当然,事实证明我是(就是在做一些愚蠢的事情)。我为 dev 和 prod 配置文件定义了一个属性,但没有为测试定义一个属性,因此测试配置文件失败了。这就是我正在测试的配置文件。愚蠢的我......【参考方案2】:

当您运行您的应用程序时,您必须设置要设置的特定 spring-profile 才能获得之前定义的特定属性。

有很多方法可以设置这些配置文件。

Setting Profiles in different ways (JVM, Programmatically, Environment Variable...)

【讨论】:

我的问题不是如何选择配置文件。我的问题是,如何根据特定配置文件中定义的属性配置主 application.properties 文件中的属性。

Spring Boot:使用 Maven 和特定 Maven 配置文件的自动属性扩展不起作用

】SpringBoot:使用Maven和特定Maven配置文件的自动属性扩展不起作用【英文标题】:SpringBoot:AutomaticpropertyexpansionusingMavenandspecificMavenprofilesisnotworking【发布时间】:2018-05-1801:58:42【问题描述】:我正在尝试使用文档中指定的72.1.1Autom... 查看详情

Docker 中的 Spring Boot

...小障碍,我希望有人能看到这个问题。我的应用程序严重依赖于环境特定属性文件中设置的@Value。在我的/src/main/resources我有三个属性文件application.propertiesappli 查看详情

嵌入式码头服务器的 Spring Boot 数据源特定属性

...是一个gradle项目,所以,我在我的gradle文件中添加了以下依赖项:org.springframework.boot:spring-boot 查看详情

spring boot 外部配置 - profile 特定配置

】springboot外部配置-profile特定配置【英文标题】:springbootexternalconfiguration-profilespecificconfiguration【发布时间】:2018-12-1316:14:50【问题描述】:根据SpringBoot文档,配置顺序为:打包jar之外的特定于配置文件的应用程序属性(applicat... 查看详情

Spring Boot 无法从配置文件特定的 yaml 文件中读取

】SpringBoot无法从配置文件特定的yaml文件中读取【英文标题】:Springbootunabletoreadfromprofilespecificyamlfile【发布时间】:2018-03-0506:15:34【问题描述】:我在玩springboot并试图创建一个配置文件特定的配置文件。我叫它application-local.yml... 查看详情

Spring Boot 微服务 - 依赖

】SpringBoot微服务-依赖【英文标题】:SpringBootmicroservices-dependency【发布时间】:2022-01-0821:59:20【问题描述】:使用dockercompose部署了两个微服务。服务之间的依赖关系在dockercompose文件中由depends_on属性定义。是否可以在springboot应... 查看详情

Java - jar 文件的 Spring 属性文件配置

...ing我有基于模块的项目,我有DAO层模块和业务层模块,它依赖于DAO层和Web层依赖于DAO层和业务层。我正在使用maven进行项目编译。每个组件的jar和jar都在web项目lib文件夹下。问题是我在D 查看详情

Spring Boot 无法读取 yml 属性文件

...收到错误消息,指出尚未指定数据库url。我正在使用以下依赖项:<dependency><groupId>org.springfr 查看详情

创建依赖于具有自己的 bootstrap.yml 的 Spring Boot 的库

】创建依赖于具有自己的bootstrap.yml的SpringBoot的库【英文标题】:CreateLibrarythathasadependencyonSpringBootthathasait\'sownbootstrap.yml【发布时间】:2020-01-1209:51:40【问题描述】:我正在开发一个库,我想拥有自己的bootstrap.yaml来定义一些配... 查看详情

无法让 Spring Boot 应用程序运行/构建特定配置文件

】无法让SpringBoot应用程序运行/构建特定配置文件【英文标题】:Havingtroublegettingspringbootapptorun/buildspecificprofile【发布时间】:2020-12-1521:54:38【问题描述】:我使用Maven作为我的构建工具。对于SpringBoot中的配置文件管理,我使用... 查看详情

特定环境的spring yml文件

...于开发人员的属性简介application-prod.yml->仅适用于产品配置文件的 查看详情

未读取junit spring boot配置文件属性

】未读取junitspringboot配置文件属性【英文标题】:junitspringbootprofilepropertiesnotbeingread【发布时间】:2018-04-2810:53:13【问题描述】:我正在使用springboot从我的junit设置中的属性文件中读取一个值。我无法读取该值。以下是我的内容... 查看详情

Spring Boot 环境特定的配置

】SpringBoot环境特定的配置【英文标题】:SpringBootEnvironment-specificconfigurations【发布时间】:2014-09-0709:29:53【问题描述】:我有一个使用执行器、自动配置和JPA的SpringBoot应用程序。我希望能够在我的test配置文件中使用内存数据库... 查看详情

spring学习-----spring使用@required注解依赖检查

Spring学习(九)-----Spring依赖检查 bean配置文件用于确定的特定类型(基本,集合或对象)的所有属性被设置。在大多数情况下,你只需要确保特定属性已经设置但不是所有属性..对于这种情况,你需要@Required注解,请参见下面的例... 查看详情

Spring Boot 应用程序:如何跟踪依赖特定 jar 来自的确切启动器?

】SpringBoot应用程序:如何跟踪依赖特定jar来自的确切启动器?【英文标题】:Springbootapplication:howtotraceexactstarterwhichdependencyparticularjarcamefrom?【发布时间】:2021-05-1308:03:44【问题描述】:我有一个遗留的Spring启动应用程序,它有... 查看详情

Angular 和 Spring Boot:使它们有效协同工作的配置

...布时间】:2018-04-0510:49:04【问题描述】:Angular项目构建依赖于AngularCLItool。Springboot项目构建依赖于SpringBootMavenPlugin。那么如何配置和构建在前端托管 查看详情

spring-boot-配置文件值注入

/***将配置文件中配置的每一个属性的值,映射到这个组件中*@ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定;  默认在全局配置文件中获取值的*prefix="person":配置文件中哪个下面的所... 查看详情

使用相对于配置文件的路径引用 Spring 属性文件

】使用相对于配置文件的路径引用Spring属性文件【英文标题】:ReferenceSpringpropertiesfileusingpathrelativetoconfigfile【发布时间】:2011-04-0609:23:03【问题描述】:我正在将属性从我的Spring配置文件中移动到一个单独的属性文件中。这包... 查看详情