- SpringBoot基础配置
- 1. 属性配置
- 2. 配置文件
- 3. yaml
- 1. 介绍
- 2. 语法规则
- 3. 数据读取
SpringBoot默认配置文件application.properties 通过键值对配置对应属性
SpringBoot中导入对应的starter后,提供对应的属性配置
Idea提供属性提示,可通过关键字得到属性名
例如:
-
修改服务器端口:
server.port=80
-
关闭运行日志图标:
spring.main.banner-mode=off
-
设置日志相关:
logging.level.root=debug
2. 配置文件SpringBoot内置属性可通过官方文档中参考文档的Application Properties 查询
1.SpringBoot提供三种配置文件格式
-
properties(默认格式)
server.port=80
-
yml(主流格式)
server: port: 81
-
yaml
server: port: 82
2.SpringBoot配置文件加载顺序
**application.properties ** > application.yml > application.yaml
注意:
不同配置文件中相同配置按加载优先级相互覆盖,不同配置全部保留
3.指定SpringBoot配置文件
在未指定为配置文件的yml或yaml中书写属性时,Idea将不会提供属性提示
解决步骤:
- Setting -> Project Structure -> Facets
- 选中对应项目
- Customize Spring Boot
- 选择配置文件
YAML (YAML Ain’t Markup Language)是一种数据序列化格式
- 优点:
- 容易阅读
- 容易与脚本语言交互
- 以数据为核心,重数据格式
- YAML文件扩展名
- .yml(主流)
- .yaml
大小写敏感
属性层级关系使用多行描述,每行结尾用冒号结束
用缩进表示层级关系且不允许使用Tab,同层级左侧对其
属性值与属性名间用冒号加空格作为分隔
# 表示注释
核心规则: 数据前用空格与冒号隔开
- 字面值表示方式:
boolean: TRUE #TRUE,true,True,FALSE,false,False均可 float: 3.14 #6.8523015e+5 #支持科学计数法 int: 123 #0b1010_0111_0100_1010_1110 #支持二进制、八进制、十六进制 null: ~ #使用~表示null string: HelloWorld #字符串可以直接书写 string2: "Hello World" #可以使用双引号包裹特殊字符 date: 2018-02-17 #日期必须使用yyyy-MM-dd格式 datetime: 2018-02-17T15:02:31+08:00 #时间和日期之间使用T连接,最后使用+代表时区
- 数组表示方式:
subject: - Java - 前端 - 大数据 enterprise: name: itcast age: 16 subject: - Java - 前端 - 大数据 likes: [王者荣耀,刺激战场] #数组书写缩略格式 users: #对象数组格式 - name: Tom age: 4 - name: Jerry age: 5 users: #对象数组格式二 - name: Tom age: 4 - name: Jerry age: 5 users2: [ { name:Tom , age:4 } , { name:Jerry , age:5 } ] #对象数组缩略格式3. 数据读取
使用@Value读取单个数据,属性名引用方式: ${一级属性名.二级属性名}
-
在配置文件中可以用${属性名}方式引用属性值
baseDir: /usr/local/fire center: dataDir: ${baseDir}/data tmpDir: ${baseDir}/tmp logDir: ${baseDir}/log msgDir: ${baseDir}/msgDir
-
属性中出现特殊字符可用双引号包裹作为字符解析
lesson: "Springtbootnlesson"
封装全部数据到Environment对象
-
使用Environment对象封装全部配置信息
-
使用@Autowired自动装配数据到Environment对象中
-
配置数据
lesson: SpringBoot server: port: 82 enterprise: name: itcast age: 16 tel: 4006184000 subject: - Java - 前端 - 大数据
-
读取数据
@RestController
@RequestMapping("/books")
public class BookController {
@Autowired
private Environment env;
@GetMapping("/{id}")
public String getById(@PathVariable Integer id){
System.out.println(env.getProperty(“lesson”));
System.out.println(env.getProperty(“enterprise.name”));
System.out.println(env.getProperty(“enterprise.subject[0]”));
return “hello , spring boot!”;
}
} -
自定义对象封装指定数据
-
使用**@ConfigurationProperties**注解绑定配置信息到封装类
-
封装类需要定义为Spring管理的Bean,才能完成属性注入
-
配置数据
datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC username: root password: root
-
读取数据
@Component @ConfigurationProperties(prefix = "datasource") public class DataSource { private String driverClassName; private String url; private String userName; private String password; }
-
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)