从外部源而不是 application.properties 填充类中的字段

问题描述 投票:0回答:1

我们可以使用

@Value("${url}")
private String url;

当我们在 application.properties 文件中定义了属性 url 时。当我们没有 application.properties 时,如何将属性绑定到 @Value 注释。我们在应用程序启动期间拥有来自服务器的属性。带来的就像

Properties properties = new Properties();
properties.load(new FileInputStream(System.getProperty("propertiesFile", "config.properties")));

我的目的是填充来自外部源的属性,如 url、用户名等,而不是 application.properties

spring spring-boot
1个回答
0
投票

值注释实际上尝试从 Spring 的环境抽象中解析占位符 ${url},如文档中所述

属性值可以使用@Value注释直接注入到您的bean中,通过Spring的Environment抽象访问,或者通过@ConfigurationProperties绑定到结构化对象。

环境不仅从应用程序属性文件中获取属性,还从操作系统环境变量等中获取属性。下面的链接包含 Spring Boot 可以读取的属性源的完整列表以及优先顺序。 Spring boot 外部化配置

所以我猜你的 URL 可以被读取,因为它也被设置为具有相同名称的系统属性。

© www.soinside.com 2019 - 2024. All rights reserved.