SpringBoot在启动时,可支持文件名后缀格式为yml或properties的配置文件。两者只是编写格式有点差异性。
application.yml文件:有层级关系,当相同配置前缀较多时,可减少代码量
server:
port: 9000
class:
method:
firstmethod: fnA
secondmethod: fnB
params:
paramA: defaultA
paramB: defaultB
application.properties文件:key=value配置,优点是配置清晰,可一眼看出具体配置的value
server.port=9000
class.method.firstmethod=fnA
class.method.secondmethod=fnB
class.params.paramA=defaultA
class.params.paramB=defaultB
注:在yml或properties配置文件中,一定不能有Tab符号的空格,否则SpringBoot启动不了。
第一步:在pom.xml文件中引入SpringBoot的Jar,并导入Web开发的Jar,加入一个maven插件,并指定SpringApplication.run启动的mainClass入口
4.0.0
com.oysept
second_springboot
1.0-SNAPSHOT
jar
org.springframework.boot
spring-boot-starter-parent
2.3.0.RELEASE
UTF-8
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-maven-plugin
com.oysept.ServerApplication
第二步:使用application.yml或application.properties文件,随意指定使用一种即可
第三步:创建一个SpringApplication.run运行入口
package com.oysept;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ServerApplication {
public static void main(String[] args) {
SpringApplication.run(ServerApplication.class, args);
}
}
第四步:创建一个Controller类,作为测试类
@RestController:此注解将类注册成一个控制层类
@RequestMapping:路由配置,即访问地址
@Value("${}"):指定加载的配置key
package com.oysept.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.time.LocalDateTime;
@RestController
public class TestController {
@Value("${class.params.paramA}")
private String paramA;
@Value("${class.params.paramB}")
private String paramB;
// http://localhost:9000/test/config
@RequestMapping(value="/test/config")
public String config() {
System.out.println("paramA: " + this.paramA);
System.out.println("paramB: " + this.paramB);
return "Time: "+ LocalDateTime.now() +", 外部配置参数: " + this.paramA + " :: " + this.paramB;
}
}
第五步:打包成Jar
打开cmd命令窗口,用cd命令切换到项目下,和pom.xml文件同层级,然后执行mvn install命令(如包mvn命令不存在,肯定是环境变量配置不正确,需检查一下maven的环境变量是否配置)
回车之后,打印如下,表示Jar打包成功
如果是用idea编辑器(idea编辑器本身提供cmd命令窗口),刷新一下项目,项目结构图如下:
1、先切换到target文件夹下,然后直接用java -jar second_springboot-1.0-SNAPSHOT.jar命令启动Jar,该方式加载的是项目下src/java/resources/application.yml配置文件
打开浏览器,在地址栏输入:http://localhost:9000/test/config
2、在target文件夹下,创建一个application.yml文件,并修改部分配置参数,然后再启动Jar
server:
port: 9000
class:
method:
firstmethod: fnA
secondmethod: fnB
params:
paramA: applicationA
paramB: applicationB
target文件夹,已把多余的文件先删除了,只留下有用的Jar和application.yml配置
执行java -jar second_springboot-1.0-SNAPSHOT.jar命令,打印效果图:
3、在target文件夹下,创建一个config文件夹,然后在config文件下创建一个application.yml文件,并修改部分配置参数,然后再启动Jar
server:
port: 9000
class:
method:
firstmethod: fnA
secondmethod: fnB
params:
paramA: applicationConfigA
paramB: applicationConfigB
执行java -jar second_springboot-1.0-SNAPSHOT.jar命令,打印效果图:
4、直接使用命令的方式启动Jar
命令:java -jar second_springboot-1.0-SNAPSHOT.jar --class.params.paramA=11111, --class.params.paramB=22222
打开浏览器,在地址栏输入:http://localhost:9000/test/config
SpringBoot配置文件加载顺序从高到低如下:
1、启动命令指定参数,多个用逗号分割
2、Jar包同层级(一个/config当前目录的子目录),config/application.yml
3、Jar包同层级(当前目录),application.yml
4、Jar包内(类路径根),src/main/resources/application.yml
注:如果您不想将命令行属性添加到中Environment,则可以使用禁用它们SpringApplication.setAddCommandLineProperties(false)。
识别二维码关注个人微信公众号
本章完结,待续,欢迎转载!
本文说明:该文章属于原创,如需转载,请标明文章转载来源!