一、概述
在本文中,我们将解释如何在Spring Boot 的application.properties
中使用环境变量。然后我们将展示如何在代码中引用这些属性。
2.在application.properties
文件中使用环境变量
让我们定义一个名为JAVA_HOME 的全局环境变量,其值为“C:\Program Files\Java\jdk-11.0.14”。
要在Spring Boot 的application.properties 中使用这个变量,我们需要用大括号括起来:
java.home=${JAVA_HOME}
我们也可以以同样的方式使用系统属性。例如,在Windows 上,默认定义一个OS 属性:
environment.name=${OS}
也可以组合几个变量值。让我们定义另一个环境变量HELLO_BAELDUNG,其值为“Hello Baeldung”。我们现在可以像这样连接我们的两个变量:
baeldung.presentation=${HELLO_BAELDUNG}. Java is installed in the folder: ${JAVA_HOME}
property
baeldung.presentation
现在包含以下文本:“Hello Baeldung。 Java 安装在文件夹中:C:\Program Files\Java\jdk-11.0.14”。
这样,我们的属性根据环境具有不同的值。
3. 在代码中使用我们的环境特定属性
鉴于我们启动了一个Spring 上下文,现在让我们解释一下如何将属性值注入到我们的代码中。
3.1。使用@Value
注入值
首先,我们可以使用@Value
注解。@Value
处理setter、构造函数和字段注入:
@Value("${baeldung.presentation}")
private String baeldungPresentation;
3.2.从Spring 环境中获取
我们还可以通过Spring 的Environment
获取属性的值。我们需要自动装配它:
@Autowired
private Environment environment;
由于getProperty
方法,现在可以检索属性值:
environment.getProperty("baeldung.presentation")
3.3.使用@ConfigurationProperties 对属性进行分组
如果我们想将属性组合在一起,@ConfigurationProperties
注释非常有用。我们将定义一个Component
来收集具有给定前缀的所有属性,在我们的例子中baeldung
。然后我们可以为每个属性定义一个setter。设置器的名称是属性名称的其余部分。在我们的例子中,我们只有一个叫做presentation
:
@Component
@ConfigurationProperties(prefix = "baeldung")
public class BaeldungProperties {
private String presentation;
public String getPresentation() {
return presentation;
}
public void setPresentation(String presentation) {
this.presentation = presentation;
}
}
我们现在可以自动装配BaeldungProperties
对象:
@Autowired
private BaeldungProperties baeldungProperties;
最后,要获取特定属性的值,我们需要使用相应的getter:
baeldungProperties.getPresentation()
4。结论
在本教程中,我们了解了如何根据环境定义具有不同值的属性并在代码中使用它们。
0 评论