#修改项目的虚拟路径 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";
}
}
通过配置文件区分开发, 测试, 生产环境 多文件方式org.springframework.boot spring-boot-configuration-processor true
#一种约定俗成的叫法 #除了properties也可以使用yaml配置文件 #用来指定运行哪种环境的配置文件 application.properties #开发环境 application-dev.properties #测试环境 application-test.properties #生产环境 application-pro.properties
#在application.properties中指定开发环境 spring.profiles.active=devyml多文档方式
---
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();
}
}



