为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Spring Boot中访问application.properties文件中定义的值

/ 猿问

如何在Spring Boot中访问application.properties文件中定义的值

交互式爱情 2019-12-10 10:31:38

我想访问中提供的值application.properties,例如:


logging.level.org.springframework.web: DEBUG

logging.level.org.hibernate: ERROR

logging.file=${HOME}/application.log


userBucket.path=${HOME}/bucket

我想userBucket.path在Spring Boot应用程序的主程序中访问。


查看完整描述

3 回答

?
翻翻过去那场雪

您可以使用@Value批注并在使用的任何Spring bean中访问属性


@Value("${userBucket.path}")

private String userBucketPath;

Spring Boot文档的“ 外部化配置”部分介绍了您可能需要的所有详细信息。


查看完整回答
反对 回复 2019-12-10
?
FFIVE

另一种方法是将环境注入您的bean。


@Autowired

private Environment env;

....


public void method() {

    .....  

    String path = env.getProperty("userBucket.path");

    .....

}


查看完整回答
反对 回复 2019-12-10
?
慕雪9262066

@ConfigurationProperties可用于将值.properties(.yml也受支持)映射到POJO。


考虑以下示例文件。


.properties


cust.data.employee.name=Sachin

cust.data.employee.dept=Cricket

Employee.java


import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.context.annotation.Configuration;


@ConfigurationProperties(prefix = "cust.data.employee")

@Configuration("employeeProperties")

public class Employee {


    private String name;

    private String dept;


    //Getters and Setters go here

}

现在,可以通过自动装配employeeProperties按如下方式访问属性值。


@Autowired

private Employee employeeProperties;


public void method() {


   String employeeName = employeeProperties.getName();

   String employeeDept = employeeProperties.getDept();


}


查看完整回答
反对 回复 2019-12-10

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信