尝试在spring boot中将env变量读取到不在application.property中的自定义属性文件

     2023-02-26     26

关键词:

【中文标题】尝试在spring boot中将env变量读取到不在application.property中的自定义属性文件【英文标题】:trying to read env variables to custom properties file not in application.property in spring boot 【发布时间】:2021-01-05 10:45:27 【问题描述】:

我正在尝试从 custom.properties 文件中的 env 变量中读取一些凭据,但它无法识别下面给出的属性文件的代码,但它无法像我这样获取 env 变量"$varName"

org.apache.ws.security.crypto.provider=org.apache.wss4j.common.crypto.Merlin
# Type - Valid Keystore Type. Eg - pkcs12 , jks   
org.apache.ws.security.crypto.merlin.keystore.type=jks
# Keystore Password 
org.apache.ws.security.crypto.merlin.keystore.password=$keystorePassword
# Keystore Private Password
org.apache.ws.security.crypto.merlin.keystore.private.password=$keystorePassword
# Keystore Alias
org.apache.ws.security.crypto.merlin.keystore.alias=$keystoreAlias
# Keystore File Name
org.apache.ws.security.crypto.merlin.keystore.file="something.jks"

有人可以帮我解决如何将环境变量获取到 custom.properties 文件和

【问题讨论】:

向 Spring application.properties 文件添加属性。否则你需要编写一个 Utility 类来读取带有环境变量的属性值。 查看这个答案***.com/a/25884743/8805742 不,我想要的是从环境变量中获取值到自定义属性文件,不想从 custom.property 中获取值,但我想从 env 变量中获取自定义属性中的值跨度> 【参考方案1】:

请尝试以下示例代码。

它从自定义属性文件中读取属性并带有前缀 value 。 例如:下面的示例使用 org.apache.ws.security.crypto.provider 的键从属性中读取值

@Configuration
@PropertySource(value = "classpath:<properytfilename>.properties")
@ConfigurationProperties(prefix = "org.apache.ws.security.crypto")
public class CustomProperties 

    private String provider;


【讨论】:

这段代码是从自定义属性中获取值我想要的是从环境变量中获取值到自定义属性文件不想从 custom.property 中获取值,但我想要来自 env 变量的自定义属性中的值【参考方案2】:

使用 java.util.Properties


....
@Value("$what.ever.env")
private String keystorePassword;

...
            Properties properties = new Properties();
            properties.setProperty("org.apache.ws.security.crypto.provider", "org.apache.wss4j.common.crypto.Merlin");
            properties.setProperty("org.apache.ws.security.crypto.merlin.keystore.password", keystorePassword);


            File file = new File("custom.properties");
            FileOutputStream fileOut = new FileOutputStream(file);
            properties.store(fileOut, "Comment here");
            fileOut.close();
...

【讨论】:

但这是在运行时写入文件我正在尝试从环境变量直接读取到属性文件,就像我们可以在 application.properties 文件中读取一样

在 Spring Boot 中读取环境变量

】在SpringBoot中读取环境变量【英文标题】:ReadenvironmentvariableinSpringBoot【发布时间】:2017-12-0120:39:44【问题描述】:在SpringBoot中读取环境变量的最佳方法是什么?在Java中,我使用:Stringfoo=System.getenv("bar");使用@Value注解可以做到... 查看详情

在 Spring Boot 中将 Angular 环境变量传递给编译的静态 Angular 文件

】在SpringBoot中将Angular环境变量传递给编译的静态Angular文件【英文标题】:PassAngularenvironmentvariablestocompiledstaticangularfilesinspringboot【发布时间】:2020-10-1511:31:08【问题描述】:我现在正在使用Angular和SpringBoot来构建网站项目。当... 查看详情

如何在 Makefile 规则中将 env 变量传递给 shell 脚本

...19-07-2906:42:42【问题描述】:我在Makefile中有一条规则,它尝试使用env变量呈现一些文本,每当我将它传递给$(shell)命令时,我总是将这个变量设为空以下是我试图传递环境变量的Makefile我正在使用sqoop从运 查看详情

如何在 docker run 命令中将 Java 选项/变量传递给 Spring Boot 应用程序

】如何在dockerrun命令中将Java选项/变量传递给SpringBoot应用程序【英文标题】:HowtopassJavaoptions/variablestoSpringbootappindockerruncommand【发布时间】:2019-11-1020:30:48【问题描述】:我有一个SpringBoot应用程序,它使用配置文件在不同的环... 查看详情

Spring Boot 集成测试:模拟环境接口

】SpringBoot集成测试:模拟环境接口【英文标题】:SpringBootIntegrationTest:MockEnvironmentInterface【发布时间】:2021-04-0904:20:51【问题描述】:在我的SpringSecurityUserDetailsService中,我注入Environment以从env变量中读取凭据。在集成测试中,... 查看详情

当我尝试在 Spring Boot 应用程序中将自定义错误传递给客户端时发生异常

】当我尝试在SpringBoot应用程序中将自定义错误传递给客户端时发生异常【英文标题】:ExceptionoccurswhenItrytopassacustomerrortoclientinspringbootapplication【发布时间】:2019-05-2600:48:35【问题描述】:java.lang.IllegalStateException:响应提交后无... 查看详情

无法在 Spring Boot 中将 ProblemHandler 设置为 ObjectMapper

...inSpringBoot【发布时间】:2018-03-2012:35:13【问题描述】:我尝试使用Jackson2ObjectMapperBuilderCustomizer将自定义问题处理程序添加到对象映射器:@BeanpublicJackson2ObjectM 查看详情

在java中将对象列表转换为JSON数组 - Spring Boot api测试

...pitesting【发布时间】:2022-01-0606:39:50【问题描述】:当我尝试发出mockmvc发布请求时,我必须在内容标签中传递对象列表,问题是每次我尝试使用此方法传递它:publicstaticStringasJsonString(fin 查看详情

如何在 GET 方法中为 Spring Boot 控制器类传递多个路径变量?

...传递给我的控制器类,所以我通过POSTMAN提供变量,当我尝试单个变量时它工作正常,但对于两个变量我得到空结果。这就是我 查看详情

在 Spring Boot 中将未知请求重定向到 index.html

...ngboot【发布时间】:2017-08-0910:58:56【问题描述】:我正在尝试通过springbootWeb应用程序提供Angular2应用程序。我找到了很多非常简单的示例:https://spring.io/blog/2015/01/12/spring-and-angu 查看详情

如何在 Spring Boot 中将属性文件值读入字符串集

...inSpringboot【发布时间】:2017-03-0509:12:45【问题描述】:我尝试过使用@Value("#\'$white.listed.hotel.ids\'.split(\',\')")privateSet<String>fareAlertwhiteList 查看详情

无法使用 Hibernate 在 Spring Boot 中将 MongoDB 设置为自动递增

...ingHibernate【发布时间】:2018-01-1717:27:16【问题描述】:我尝试使用此链接(CustomSequences)在SpringBootWeb应用程序中进行自动增量:HowcanwecreateAutogeneratedfie 查看详情

如何在 Wildfly 中将外部属性文件加载到 Spring Boot

...何将在Wildfly9中运行的应用程序的外部属性加载为WAR,我尝试将java参数添加到Wildfly执行,但似乎应用程序无法识别这些属性。-Dspring.config.locati 查看详情

在 Java Spring Boot 中将 CSV 转换为 JSON 数组

...发布时间】:2020-05-1419:49:00【问题描述】:您好,我正在尝试使用名为csvReader的依赖项将CSV文件转换为JSON数组,但是当我运行代码时,它会错误地打印出JSON响应,我知道为什么有人能够指出我的正确之处方向。@GetMapping("/convert"... 查看详情

在eclipse中将Spring Boot应用程序导出为JAR文件

...SpringBoot项目。我可以在Eclipse中很好地运行它,但是当我尝试将它导出为JAR文件时,我得到:rg.springfra 查看详情

如何在自定义反序列化器 Spring Boot 中读取路径变量或 URL 参数

】如何在自定义反序列化器SpringBoot中读取路径变量或URL参数【英文标题】:HowtoreadpathvariablesorURLparametersinCustomdeserializerSpringBoot【发布时间】:2017-11-2514:06:47【问题描述】:我已经为SpringBoot应用程序中的实体编写了一个自定义反... 查看详情

如何在 Spring Boot 应用程序中将用户添加到嵌入式 tomcat?

...ation?【发布时间】:2016-10-0910:15:54【问题描述】:我正在尝试创建一个SpringBoot应用程序,除了在访问localhost:8080时必须插入用户名和密码外,一切运行良好。我不知道如何从我的应用程序中将新的tomcat用户添加 查看详情

如何在 Spring Boot 中将 Cache-Control 标头添加到静态资源?

...】:如何在SpringBoot中为静态资源添加Cache-ControlHTTP标头?尝试在应用程序中使用过滤器组件,该组件可以正确写入标头,但Cache-Control标头会 查看详情