SpringBoot允许您外部化配置,以便可以在不同环境中使用相同的应用程序代码。您可以使用属性文件,YAML文件,环境变量和命令行参数来外部化配置。属性值可以直接使用注入,使用@Value注释,通过Spring的访问Environment抽象或绑定到结构化对象通过@ConfigurationProperties如第二章节中的2.3小节中的描述所示。
SpringBoot也可以从以下位置加载配置;优先级从高到低;高优先级的配置覆盖低优先级的配置,所有的配置会形成互补配置这里讲解使用最高配置控制命令加载配置文件。
(1)优先加载带profile
jar包外部的application-{profile}.properties或application.yml(带spring.profile)配置文件
jar包内部的application-{profile}.properties或application.yml(带spring.profile)配置文件
(2)其次加载不带profile
jar包外部的application.properties或application.yml(不带spring.profile)配置文件
jar包内部的application.properties或application.yml(不带spring.profile)配置文件
将工程【boot_configure】使用Maven命令package打包,点击“package”按钮如图3.1所示
图3.1
进入CMD中执行如下命令:
那么运行外部的配置,如图3.2所示。
图3.2
请求对应的地址http://localhost:8089/index/getMap?name=1如图3.3所示。
图3.3
SpringBoot启动时,会扫描application.properties或application.yml文件作为默认的配置文件。
扫描的位置有四种,有不同的优先级。
按照优先级的高低,高优先级的配置内容会覆盖低优先级的配置内容。
优先级由高到低如下:
file: ./config/
file: ./
classpath: /config/
classpath: /
项目中具体位置和优先级如图3.4所示。
图3.4