在Spring Boot中,配置文件有两种不同的格式:
1.一个是application.properties
server.port=8888
server.servlet.context-path=demo
2.另一个是application.yml
server:
port: 8888
servlet:
context-path: /demo
配置文件与配置类的属性映射方式
person:
name: zhangsan
age: 18
实体Bean代码如下:
@RestController
public class PersonController {
@Value("${person.name}")
private String name;
@Value("${person.age}")
private Integer age;
@RequestMapping("/hello")
public String hello(){
return "你好,访问成功! name="+name+",age="+age;
}
}
浏览器访问地址:http://localhost:8080/hello
使用注解@ConfigurationProperties映射
@RestController
@ConfigurationProperties(prefix = "person")
public class QuickStartController {
private String name;
private Integer age;
@RequestMapping("/hello")
public String hello(){
return "你好, 访问成功! name="+name+",age="+age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(Integer age) {
this.age = age;
}
}
注意:使用@ConfigurationProperties方式可必须提供set方法,而使用@Value注解修饰字段不需要
多环境配置
开发Spring Boot应用时,通常同一套程序会被应用和安装到几个不同的环境,比如:开发、测试、生产等。其中每个环境的数据库地址、服务器端口等等配置都会不同。
在Spring Boot中多环境配置文件名需要满足application-{profile}.yml的格式
其中{profile}对应你的环境标识,比如:
- application-dev.yml:开发环境
- application-test.yml:测试环境
- application-prod.yml:生产环境
至于哪个具体的配置文件会被加载,需要在application.yml文件中通过spring.profiles.active属性来设置,其值对应{profile}值。
如: application.yml中设置spring.profiles.active=dev,就是说默认以dev环境设置
如有疑问,欢迎留言或者私信讨论,让技术之花,在头条盛开!