SpringAppication会默认将命令行选项参数转换为配置信息

  • 例:启动时命令参数的指定
java -jar project.jar --server.port = 9090
  • 从命令行指定的配置项的优先级最高,不过你可以通过setAddCommandLineProperties来禁用它
SpringApplication.setAddCommandLineProperties(false);

外部配置文件
Spring程序会按优先级从下面这些路劲来加载application.properties的配置文件

  • 当前目录下的/config目录
  • 当前目录
  • classpath里的/config目录
  • calsspath根目录
    ::: hljs-left
    因此,要外置配置文件就很简单了,在jar所在目录新建config文件夹,然后放入配置文件,或者直接放在配置文件在jar目录
    :::

自定义配置文件
不想使用application.properties最为配置文件,可以通过下面方式指定加载的配置文件

java -jar project.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties

或者

java -jar -Dspring.config.location=C:\Users\77375\Desktop\www\test.yml project.jar

代码中指定

@SpringBootApplication
@PropertySource(value={"file:config.properties"})
public class SpringbootrestdemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootrestdemoApplication.class, args);
    }
}

按Profile不同环境读取不同配置文件
首先,按不同的环境设置一个配置文件,例如:
dev环境 => application-dev.yml
prod环境 => application-prod.tml

然后在application.properties中指定用哪一个配置文件

spring.profiles.active = dev

也可在启动的时候用命令指定:

java -ar project.jar --spring.profiles.active = prod
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐