SpringBoot yml文件语法
SpringBoot提供了大量的默认配置,如果要修改默认配置,需要在配置文件中修改。
SpringBoot默认会加载resource下的配置文件:
- application*.yml
- application*.yaml
- application*.properties
这也是配置文件的加载顺序,如果某个key有多个配置,则后加载的会覆盖之前加载的配置。
yml、yaml是同一种文件,后缀写成yml、yaml都可以。
一般使用application.yml。
springboot在不同的环境下有默认的加载文件:
- application 开发、测试、生产都会加载,公共的
- application-dev 只在开发环境加载(调试src/main)
- application-test 只在测试环境加载(调试src/test)
- application-prod 只在生产环境加载(正式打包部署)
yml文件语法
(1)普通字段:
name: zhangsan
值不加引号
(2)对象、Map
对象、Map的配置方式是一样的。
student: #对象名、Map名
id: 1 #配置一个属性、一个键值对
name: chy
age: 20
score: 100
值可以是对象:
server:
port: 8080
servlet:
context-path: /springboot
servlet的值就是一个对象。不配置端口,默认为8080;不配置context-path,默认为/
(3)数组、List
city: [beijing,shanghai,guangzhou,shenzhen]
student: [{name: zhangsan,age: 20},{name: lisi,age: 20}] #元素可以是对象
值,不管是key的值,还是数组元素,都不加引号。
key、value冒号分隔,冒号后面都要加一个空格,加了空格后key会变成橙色,才有效。
使用yml中的值
如果是springboot预定义的key,springboot会自动使用它。如果是自定义的key,就需要我们自己来引用。有2种引用方式。
(1)使用@Value
name: chy
@RestController
public class UserController {
@Value("${name}") //使用@Value注入配置文件中的值。${}要加引号
private String name; @RequestMapping("/user")
public String handler(){
return name; //使用
} }
不能直接${ }、"${ }"来使用配置文件中的值。
需要借助成员变量,使用@Value注入配置文件中的值,通过成员变量来引用。
不管成员变量是什么数据类型,${ }都需要加引号,会自动转换为需要的类型,注入。
对象、Map,通过.来注入单个字段, @Value("${student.name}")
数组、List,通过下标来注入单个元素,@Value("${city[0]}")
只能注入基本类型,不能直接直接注入整个对象、Map、数组、List。
(2)使用@ConfigurationProperties注入对象、Map
使用@Value依次注入对象、Map的字段时,student.id,student.name,student.age,都有相同的前缀student,也可以这样来注入:
@RestController
@ConfigurationProperties(prefix = "student") //设置前缀
public class UserController {
private int id;
private String name;
private int age;
private int score; public void setId(int id) {
this.id = id;
} public void setName(String name) {
this.name = name;
} public void setAge(int age) {
this.age = age;
} public void setScore(int score) {
this.score = score;
} @RequestMapping("/user")
public String handler(){
return name; //使用
} }
设置前缀、设置对应的成员变量、并提供对应的setter方法,会自动注入该字段的值。
运行,效果正常,但IDEA提示:
其实没啥影响,当然也可以在pom.xml中添加:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
这样写完@ConfigurationProperties后,在yml中配置该前缀(对象)时,会有字段提示,比如打一个student.,会有预选项id、name、age、score。
SpringBoot yml文件语法的更多相关文章
- springboot yml 文件配置oracle,提示账号密码错误
最近使用Spring boot,本来一直连接的是mysql数据库,一直没问题.昨天在更换了oracle数据库后,一直提示账号密码不正确,登录被拒绝.检查多次,检查账号密码一切正常,但就是连接不上ora ...
- SpringBoot入门及YML文件详解
SpringBoot 简介 微框架,与 Spring4 一起诞生,基于约定.生来为了简化 spring 的配置 优点 可以快速的上手,整合了一些子项目(开源框架或者第三方开源库) 可以依赖很少的配置快 ...
- springboot配置文件之yml的语法学习
springboot配置文件(.yml/.yaml.properties) YAML(YAML Ain't Markup Language) YAML A Markup Language:是一个标记语 ...
- Springboot:属性常量赋值以及yml配置文件语法(四)
方式一: 注解赋值 构建javaBean:com\springboot\vo\Dog 1:@Component:注册bean到spring容器中 2:添加get set toString方法 3:使用 ...
- Spring-boot(二)yml文件的使用
上一章创建了一个简单的springboot项目,配置可以说非常的简单. 不过,在实际开发中不可能都用默认的配置,还是需要根据自己的实际项目需求有自定义的配置的. 比如:端口号需要变更,模板引擎的缓存开 ...
- SpringBoot使用@Value从yml文件取值为空--注入静态变量
SpringBoot使用@Value从yml文件取值为空--注入静态变量 1.application.yml中配置内容如下: pcacmgr: publicCertFilePath: ...
- 使用SpringBoot的yml文件配置时踩的一个坑
问题描述:使用SpringBoot整合redis进行yml配置的时候,启动工程报错,提示加载application.yml配置文件失败: ::27.430 [main] ERROR org.sprin ...
- SpringBoot yml properties文件
一.在SpringBoot实现属性注入: 1).添加pom依赖jar包: 1 <!-- 支持 @ConfigurationProperties 注解 --> 2 <!-- https ...
- Springboot的yml文件
spring: datasource: # 数据库四大组件 schema-password: root data-username: root driver-class-name: com.mysql ...
随机推荐
- Windows10_64位搭建WampServer(运行php代码)教程及问题
Windows10_64位搭建WampServer(运行php代码)教程及问题 笔者最近学习PHP,想通过web页面的形式更加形象生动的了解php代码的原理. 于是,这次就通过WampS ...
- 毕向东java基础总结
Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...
- IDEA中编辑HTML格式,不自动缩进问题
在IntelliJ Idea中HTML格式化时,默认<head><body>以及<body>下的标签都不会缩进,这就导致你每次写好html时候格式化的时候所有标签都 ...
- PAT 1014 Waiting in Line (30分) 一个简单的思路
这题写了有一点时间,最开始想着优化一下时间,用优先队列去做,但是发现有锅,因为忽略了队的长度. 然后思考过后,觉得用时间线来模拟最好做,先把窗口前的队列填满,这样保证了队列的长度是统一的,这样的话如果 ...
- VMware 14 激活密钥
VMware 14 激活密钥 FF31K-AHZD1-H8ETZ-8WWEZ-WUUVA CV7T2-6WY5Q-48EWP-ZXY7X-QGUWD
- js开关菜单
开关菜单 /* 将需要的信息添加到类的静态数组里备用 设置一个值openBool,默认为false:菜单默认display为none 点击时,如果目标元素是子元素,则不做开关菜单操作,直接return ...
- SpringBoot+mongoDB实现id自增
这段时间给朋友做了一个微信小程序,顺便练习一下spring boot,虽然项目使用的是JPA+MySQL,但是好奇尝试了一下MongoDB实现自增ID,虽然MongoDB很少有自增ID的需求(在分布式 ...
- ztree-拖拽(排序树)
<!DOCTYPE html> <HTML> <HEAD> <TITLE> ZTREE DEMO - beforeDrag / onDrag / bef ...
- BZOJ - 2038 小Z的袜子(普通莫队)
题目链接:小Z的袜子 题意:$n$只袜子,$m$个询问,每次回答有多大概率在$[L,R]$区间内抽到两只颜色相同的袜子 思路:普通莫队,如果两个询问左端点在一个块内,则按询问右端点排序,否则按照所在块 ...
- Java连载65-自定义手动抛出异常、子类的异常范围、数组初探
一.手动抛出异常1.自定义无效名字异常: (1)编译时异常,直接继承Exception (2)运行时异常,直接继承RuntimeException 举例子:注意点:throws会向上抛出异常,跑到最上 ...