SpringBoot配置文件概述
1)SpringBoot的配置文件的名字必须以application开头:
2)SpringBoot配置文件有两种后缀:.properties和.yml(表示的意思是一样,只是编写数据的格式不同)
- application.properties:使用key=value的形式编写数据,以.来分层级
- application.yml:使用key: value的形式编写数据,以回车加缩进来分层级
3)SpringBoot配置文件中系统已经定义了一些key
- 可以去Spring的官网中查看系统定义的key:Spring | Home
例1:在application.properties中设置服务器的端口号和web应用的上下文(项目的根路径)
例2: application.yml设置服务器的端口号和web应用的上下文(项目的根路径)
SpringBoot的多环境配置
在实际开发中,项目会在开发环境, 测试环境, 上线环境运行,而每个环境的配置信息不同, 例如端口, 上下文件, 数据库url,用户名,密码等等。
此时就可以进行多环境配置:创建多个用于不同环境下的SpringBoot配置文件并提供一个主配置文件;将不同环境下的配置信息编写在不同的配置文件下,然后在主配置文件中切换不同环境下的配置文件。
名称规则: application-环境名称.properties(yml)
- 创建开发环境的SpringBoot配置文件: application-dev.properties( application-dev.yml )
- 创建测试环境的SpringBoot配置文件: application-test.properties
实现步骤
1.在resources目录下创建多个不同环境下的SpringBoot配置文件
其中:
2.在主配置文件中指定激活哪个环境下的springboot配置文件
SpringBoot配置文件中数据的编写和获取
编写配置文件中的数据
获取配置文件中的数据
方式一:@Value("${key.key...}")注解
使用@Value("${key.key...}")注解:标在成员变量上,从配置文件中根据key获取对应的value,并给其赋值。
实现步骤:
- 先配置SpringBoot配置文件中的key=value数据
#配置服务器的端口号
server.port=8082
#配置web项目的根路径
server.servlet.context-path=/myspringboot
#自定义key=value对
school.name=test
school.website=www.test.com
school.address=test
site=www.baidu.com
- 获取
@org.springframework.stereotype.Controller
public class Controller {
//根据key获取SpringBoot配置文件中的对应的value数据
@Value("${server.port}")
private Integer port;
@Value("${server.servlet.context-path}")
private String contextPath;
@Value("${school.name}")
private String shoolName;
@Value("${site}")
private String site;
@RequestMapping("/data")
@ResponseBody
public String queryDate(){
return "shoolName=" + shoolName + "site="+ site + "项目的访问地址=" + contextPath + "port=" + port;
}
}
方式二:@ConfigurationProperties注解
标注在实体类上。
主要作用:将SpringBoot 配置文件(如 application.properties 或 application.yml)中的属性值 映射到 Java 对象的属性中,是 SpringBoot 的注解。
语法:@ConfigurationProperties(prefix = "配置文件中的某前缀key")
- prefix属性:指定配置文件中属性的前缀,将所有以 "xxx.yyy" 前缀开头的属性,自动映射到对应属性上。