SpringBoot 配置文件

目录

1.配置文件的作用及格式

(1) 配置文件的作用

(2) 配置文件的格式

2.properties配置文件说明

(1) properties基本语法

(2)读取配置文件

(3)properties的缺点分析

3.yml 配置文件说明

(1)yml 基本写法

(2)yml 配置不同的数据类型

(3) yml 单双引号的问题

(4) 配置对象

4.properties 和 yml 的区别

5.设置不同环境的配置文件

(1)创建不同环境的配置文件

(2)在application.yml中设置运行环境


1.配置文件的作用及格式

(1) 配置文件的作用

在 Spring Boot 项目中如果没有配置信息,就不能连接和操作数据库, 甚至是不能保存可以用于排查问题的关键日志, 所以配置文件的作用是非常重要的

(1)系统使用的配置文件

  • 端口号的设置
  • 数据库的连接信息(包括用户名和密码)
  • 第三方系统的调用密钥等信息
  • 用于发现和定位问题的普通日志和异常日志等

(2)用户自定义配置文件

(2) 配置文件的格式

Spring Boot 配置文件主要分为两者格式

  • .properties
  • .yml
    在这里插入图片描述
    properties可以看作老员工,yml可以看作新员工
    特殊说明:
    1.当一个项目中存在两种格式的配置文件,并且两个配置文件中设置了相同的配置项,但值不同时,那么 properies 的优先级更高。
    2.通常情况一个项目中只会存在一种格式的配置文件。

2.properties配置文件说明

properties 配置⽂件是最早期的配置⽂件格式,也是创建 Spring Boot 项⽬默认的配置⽂件。

(1) properties基本语法

properties 是以键值的形式配置的, key=value 中间是以 “=” 连接的

# 配置项目端口号
server.port=8888
# 连接数据库
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=123456

要注意配置文件中是用"#"来添加注释信息的

(2)读取配置文件

如果在项目中, 想要主动读取配置文件中的内容, 可以使用 @Value 注解来实现

@Value 注解使用 "${}" 的格式读取

在这里插入图片描述

`@Controller //当前类为控制器
@ResponseBody //返回的是数据,而非页面
public class TestController {
    @Value("${mytext}")
    private String mytext;

    @RequestMapping("/getMytext")
    public String getConfig(){
        return "你好: " + mytext;
    }
}

在这里插入图片描述

(3)properties的缺点分析

properties 配置是以 key-value 的形式配置的,如下图所示:
在这里插入图片描述
从上述配置key看出,properties 配置⽂件中会有很多的冗余的信息:
spring.datasource
要想解决这个问题, 就可以使用 yml 配置文件的格式化了

3.yml 配置文件说明

yml 是 YAML 是缩写,它的全称 Yet Another Markup Language 翻译成中⽂就是“另⼀种标记语⾔”。

yml优点分析

  • yml语言可读性更高,写法简单,易于理解,其语法与json类似
  • yml支持更多的数据类型,它可以简单表达清单(数组)、散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件等。
  • yml支持更多的编程语言,它不止是 Java中可以使用在 Golang、PHP、Python、Ruby、JavaScript、Perl中。

(1)yml 基本写法

yml 是树形结构的配置文件,它的基础语法是“key: value”,注意 key 和 value 之间使用英文冒汗加空格的方式组成的,其中的空格不可省略
基础语法如下
在这里插入图片描述

(2)yml 配置不同的数据类型

# 字符串
string.value: hello
 
# 布尔值
boolean.value: true
 
# 整数
int.value: 10
 
# 浮点数
float.value: 3.14159
 
# Null, ~ 表示 null
null.value: ~

(3) yml 单双引号的问题

在这里插入图片描述在这里插入图片描述但是加上特殊字符时
在这里插入图片描述

结论: yml 中如果使用了双引号就会按照(原)语义执行,如果都不加,或者加了单引号那么默认就会将字符串中的特殊字符进行转义(本来应该换行的,转义后就不换行了)

(4) 配置对象

在这里插入图片描述
是使⽤⾏内写法(与上⾯的写法作⽤⼀致):
在这里插入图片描述读取yml中对象

在 yml 中配置对象, 这个时候需要使用注解 @ConfigurationProperties 来读取
在这里插入图片描述

@Controller //当前类为控制器
@ResponseBody //返回的是数据,而非页面
public class TestController {
    @Autowired
    private Student student;

    @PostConstruct
    private void postConstruct(){
        System.out.println(student);
    }
}

在这里插入图片描述

4.properties 和 yml 的区别

  • properties 是以 key=value 的形式配置的键值类型的配置文件, 而 yml 使用的是类似于 json 格式的配置方式, key: value 中间用冒号和空格连接
  • properties 是早期并且也是默认的配置文件格式, 这种方式存在一定的冗余数据, yml 可以很好的解决这种冗余问题
  • yml 通用性更好,支持更多语言, 并且支持更多的数据类型
  • yml支持更多的数据类型

5.设置不同环境的配置文件

在我们以后开发的时候,为了更好的开发编写代码,我们可以有不同类型的配置文件:开发…

(1)创建不同环境的配置文件

  • application-dev.yml
  • application-prod.yml
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

(2)在application.yml中设置运行环境

在这里插入图片描述在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豆腐乾净找方规

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值