3个步骤:
1.写yaml文件
2.在控制类里面定义变量
3.在变量上面用 " @Value注解 + ${} " 获取yaml文件的属性
代码演示:
yaml文件
控制类:
访问网址books后:
读取到了对应了值
在yaml文件中如果有多条属性有某个相同的部分,那在修改这个值的时候就需要修改所有的值,而使用变量的话就避免了这个问题。
使用的方式与在@Value注销中是一样的,都是 ${} 这种方式。
而如果值中包含了转义字符,就需要使用双引号包裹才能生效。
向上一节那样一个属性一个属性地取比较麻烦,boot提供了更简便的方法来获取yaml里面的所有属性。
- @RestController
- @RequestMapping("/books")
- public class BookController {
- //读取yaml里面的值
-
- @Value("${user.nae}")
- private String name;
-
- @Value("${user.age}")
- private int age;
- //自动装配注解
-
- @Autowired
- private Environment environment;
-
-
- @GetMapping
- public String getById(){
- System.out.println("springboot is running ...");
- System.out.println("age"+age);
- System.out.println("name"+name);
- System.out.println("------------------------------------");
- //这里使用getProperty方法使用属性
- System.out.println(environment.getProperty("user.nae"));
- System.out.println(environment.getProperty("user.age"));
- return "springboot is running ...";
- }
-
- }
说是部分属性,实际上指的是某个对象的全部属性,就是一个对象一个对象地从yaml文件中取。
这种方式是目前主流,并且springboot底层也使用的是该方式。
1.写一个用来封装yaml文件中的要获取的对象的类
2.用@Component把这个类交给spring管理
3.使用@ConfigurationProperties("user")注解来指定该类要封装yaml文件中的哪个属性
23.整合JUnit
等学完整合MyBatis和MyBatis-Plus以及Druid后,要总结出一个springboot整合各种技术的套路,即第一步,第二步,第三步这样
要使用测试类来测试方法
1.注入你要测试的对象,用 @Autowired自动装配 2.执行要测试的对象的方法
- @SpringBootTest
- class SpringbootJUnitApplicationTests {
-
- //1.注入你要测试的对象,用 @Autowired自动装配
- //2.执行要测试的对象的方法
- @Autowired
- private BookImpl book;
- @Test
- void contextLoads() {
- book.save();
- }
-
- }
如果测试类运行错误: