迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

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

作者:迹忆客 最近更新:2022/04/25 浏览次数:

在Spring Boot 开发中,有时候我们想访问 application.properties 中提供的值,例如:

logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR
logging.file=${HOME}/application.log

userBucket.path=${HOME}/bucket

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

最常用的有以下三种方式

第一、使用 @Value 注解

我们可以使用 @Value 注解并访问正在使用的任何 Spring bean 中的属性

@Value("${userBucket.path}")
private String userBucketPath;

根据以往的经验,在某些情况下可能无法获取该值或将其设置为 null。 例如,当我们尝试在 preConstruct() 方法或 init() 方法中设置它时。 发生这种情况是因为值注入发生在类完全构造之后。 这就是为什么最好使用第三个方式的原因。

第二、使用 @PropertySource 注解

@PropertySource("classpath:application.properties")

// env 是环境变量
env.getProperty(configKey);
  • 加载类时,PropertySouce 在环境变量(在我们的类中)中设置属性源文件中的值。 因此,我们可以轻松获取。
  • 可通过系统环境变量访问。

第三、使用 @ConfigurationProperties 注解

  • 这主要在 Spring 项目中用于加载配置属性。
  • 它基于属性数据初始化实体。
  • @ConfigurationProperties 标识要加载的属性文件。
  • @Configuration 根据配置文件变量创建一个 bean。
@ConfigurationProperties(prefix = "user")
  @Configuration("UserData")
  class user {
    //Property & their getter / setter
  }

  @Autowired
  private UserData userData;

  userData.getPropertyName();

除非注明转载,本站文章均为原创或翻译,欢迎转载,转载请以链接形式注明出处

本文地址:

迹忆客

专注技术分享,项目实战分享!

技术宅 乐于分享 7年编程经验
社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

热门文章

教程更新

热门标签

扫码一下
查看教程更方便