一.application.yml文件
yml文件部分 start
01、首先我们都知道一个常识,那就是每个人都有自己的年龄,比如我们现在的业务需求是查询所有年龄大于20的人的相关信息,如果我们选择通过配置文件来配置这个值为20的常量的话,我们该如何配置和如何从配置文件中获取这个值呢?,application.yml的内容如下(注意 “age:“ 和 “20“ 之间需要一个空格,yml的语法 ):
- server:
- port: 8087
- context-path: /springboot-yml-properties
- #年龄
- age: 20
再controller文件中获取的方式:
- @Value("${age}")
- private Integer age;
下面是一个yml配置文件的灵活使用方法:
- #年龄
- age: 20
- #姓
- lastName: 王
- content: "age: ${age}, lastName: ${lastName}"
controller层数据获取:
- @Value("${age}")
- private Integer age;
- @Value("${lastName}")
- private String lastName;
- @Value("${content}")
- private String content;
- @RequestMapping("/test")
- public String test() {
- return content;
- }
多层:
- #人
- person:
- age: 20
- lastName: 王
- date: 2001-03-27
controller层代码表示:
- @Value("${person.age}")
- private Integer age;
二、不同环境的配置dev,uat,prod
新建三个yml文件,分别为application-dev.yml,application-uat.yml,application-prod.yml.三个文件大同小异,dev为开发环境,uat为测试环境,prod为生产环境。application.yml文件根据不同环境改变profiles:active的值,使用不同的文件。
项目启动时可以添加java -jar web.jar spring.profiles.active=uat 来启动不同环境配置,但仅限于开发和测试环境,线上环境不允许这样操作。
dev配置如下
- server:
- port: 8080
- tomcat:
- uri-encoding: utf-8
- spring:
- thymeleaf:
- mode: LEGACYHTML5
- cache: false
- jackson:
- time-zone: GMT+8
- date-format: yyyy-MM-dd HH:mm:ss
- profiles:
- active: dev
- http:
- multipart:
- max-file-size: 30Mb
- max-request-size: 30Mb
- devtools:
- restart:
- enabled: true
- mybatis:
- configuration:
- map-underscore-to-camel-case: true
- mapper-locations: mybatis/**/*Mapper.xml
三、注意
1.spring只能出现一个
2.格式正确,同级要对齐
3.参数的写法:例如age: 20,冒号后面必须有空格否则会报错,idea编译器中会有提醒,eclipse并没有
4.编辑yml文件时不能使用TAB键来缩进,否则启动会报错。