springboot加载配置文件的优先级 & 配置项加载方法

在基于springboot框架编写java程序时,配置文件可以选择放在jar包内或者jar包外,相比于普通的java程序,springboot可以直接自动读取配置文件,而不需要额外的读取配置文件的代码在

一、配置文件放在jar包内:

以intellij idea为例,只需要将配置项定义在${project根目录}/src/main/resources/application.properties即可;

二、配置文件放在jar包外:

    1. 在jar包的同级目录下建一个config文件夹,然后把application.properties放到这个文件夹下;
    1. 直接把application.properties放到jar包的同级目录;
    1. 在classpath下建一个config文件夹,然后把application.properties放进去;
    1. 是在classpath下直接放配置文件。

这4种方式的优先级是从1到4依次降低,放在${project根目录}/src/main/resources/下的配置文件优先级最低,最终生效的是高优先级。

三、配置项加载方法

springboot中使用属性注入的方式将配置文件application.properties中的配置项加载到项目中,使用@Value完成注解,不需要在业务代码中添加读写配置文件的代码:


import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

@Service
public class ZkUtil implements InitializingBean {

  @Value("${zookeeper.quorum}")
  private String zookeeperQuorum;
  @Value("${tenant:@null}")
  private String tenantName;
  // ......

}

在应用jar的同级目录config下有application.properties,其中包含如下配置项:


zookeeper.quorum=localhost:2181
tenant=datalake


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容