配置文件参数
#修改项目的虚拟路径
server.servlet.context-path=/hello
配置文件优先级
#第一
application.properties
#第二
application.yml
#第三
application.yaml
获取配置数据
#优先级第三
#大小写敏感
#数据值前必须有空格, 作为分隔符
#使用缩进代表层级关系, 但是不允许用TAB, 要用空格, 空格数不重要, 只要相同层级对齐即可
msg1: 'hello \n world' #不识别转义字符, 原样输出
msg2: "hello \n world" #识别转义字符
person1:
name1: ${msg1}
age1: 18
person2: {name2: zhangsan}
address1:
- beijing1
- shanghai1
address2: [beijing2,shanghai2]
server:
port: 8082
@RestController
public class HelloController {
@Value("${person1.name1}")
private String name1;
@RequestMapping("/test")
public String test(){
return name1;
}
}
@RestController
public class HelloController {
@Autowired
private Environment environment;
@RequestMapping("/test")
public String test(){
return environment.getProperty("address1[0]");
}
}
@Component //让类被spring识别, 类似Bean
@ConfigurationProperties(prefix = "person1") //用来识别配置文件中的对象前缀
public class Person {
private String name1;
private int age1;
//省略GetSet构造以及toString方法
}
@RestController
public class HelloController {
@Autowired
private Person1 person1;
@RequestMapping("/test")
public String test(){
System.out.println(person1);
return "person1";
}
}
<!--识别ConfigurationProperties, 配置文件会有提示-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
通过配置文件区分开发, 测试, 生产环境
多文件方式
#一种约定俗成的叫法
#除了properties也可以使用yaml配置文件
#用来指定运行哪种环境的配置文件
application.properties
#开发环境
application-dev.properties
#测试环境
application-test.properties
#生产环境
application-pro.properties
#在application.properties中指定开发环境
spring.profiles.active=dev
yml多文档方式
---
server:
port: 8081
spring:
profiles: dev
---
server:
port: 8082
spring:
profiles: test
---
server:
port: 8083
spring:
profiles: pro
---
spring:
profiles:
active: dev
![[Pasted image 20210710152614.png]]
内部配置文件优先级
#内部配置文件指的是application.properties
#第1. 项目根目录的config文件夹
#第2. 项目根目录
#第3. templates目录的config文件夹
#第4. templates根目录
#注意: 项目根目录以及根目录的config文件夹是不会被打进jar包的, 不符合规范
命令行指定配置
#只要在命令行输入配置, 再在前面加一个--
#java -jar springboot.jar --spring.config.name=project
java -jar springboot.jar --server.port=8081
命令行加载配置文件
#默认指定与jar包同级的配置文件
java -jar springboot.jar --spring.config.location=e://application.properties
单元测试
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Springboot01Application.class)
public class test {
@Autowired
private UserService userService;
@Test
public void testAdd(){
userService.add();
}
}