Springboot 配置指南
项目中会遇到多个环境,比如生产环境,预发布环境,测试环境,开发环境等。每个环境的配置是不一样的。
Spring提供了一种配置优先级的读取机制帮我们解决这种困境。
Spring 配置的优先级从高到低依次是:
1、命令行参数。 比如java -jar demo.jar --server.port=8081
2、通过System.getProperties()获取的系统参数;
3、环境变量,System.getEnv();
4、从java:comp/env获取的JNID参数
5、RandomValuePropertiesSource生成的Random.*属性
6、jar外部的配置文件
7、jar内部的配置文件
8、应用的配置类,用@Configuartion注解的java类。
9、通过SpringApplication.setDefaultProperties设置的属性。
我们通常用的 命令行参数、jar外部的配置文件、jar内部的配置文件。
命令行参数: java -jar demo.jar --server.port=8081
外部配置文件的使用方式:java -jar demo.jar --spring.config.location=propertiesFilePath;
内部配置文件的使用方式: 除了默认的application.properties文件之外,存在多个application-{profileName}.properties配置文件,启动时使用命令:java -jar demo.jar --spring.profiles.active={profileName}
另外:有时候我们在启动项目的时候,总需要优先启动一些初始化的类,以前比较常见的是static静态快中,spring提供了一个CommandLineRunner接口,实现这个接口的类,会被优先启动,并且优先执行CommandLineRunner的run方法。多个CommandLineRunner时,使用Order命令设置顺序。
网友评论