SpringBoot配置文件(properties、yml、yaml)


SpringBoot配置文件(properties、yml、yaml)

一、配置文件

  • SpringBoot默认的配置文件:application.properties,键值对形式编写
    在这里插入图片描述
  • 官网文档中有相关配置信息:https://docs.spring.io/spring-boot/docs/current/reference/html/
    在这里插入图片描述
  • 每一个配置对应一个技术和jar包有关

1、配置tomcat

# 服务器的端口配置
server.port=80

2、配置banner

# 修改banner
# 关闭banner的显示
#spring.main.banner-mode=off
# 设置banner的图片样式
#spring.banner.image.location=aaa.jpg

3、配置日志

# 日志
# debug日志
#logging.level.root=debug
# 报错日志
#logging.level.root=error

二、三种配置格式

1、application.properties(默认传统)

server.port=80

2、applicaiton.yml(主流常用)

server:
  port: 81

3、application.yaml

server:
  port: 82

三、配置文件加载优先级

  • application.properties(大) -> applicaiton.yml(中) -> application.yaml(小)
  • 不同配置文件中相同配置将被覆盖,不同配置文件中不同配置文件全部保留

四、yaml数据格式

1、语法规则

  • 区分大小写
  • 格式要求严格
  • 属性名与属性值之间使用冒号+空格分隔
  • 同层级的名称不能一样
  • #表示注释
  • IDEA会帮我们定义格式,书写注意即可

2、常用格式

# 常用格式
server:
  port: 82

3、字面量格式

# 字面量
port: 8080
party: true
birthday: 2020-10-02

4、对象类格式

# 对象类
user:
  name: admin
  age: 16

5、数组数据格式

# 数组
likes:
  - game
  - music
  - sleep

enterprise:
  name: zs
  age: 12
  subject:
    - Java
    - 前端
    - 大数据

lists2: [game,music,sleep]

6、对象数据格式

# 对象数组
users:
  - name: zs
    age: 18
  - name: ls
    age: 20

users2:
  -
    name: zs
    age: 18
  -
    name: ls
    age: 20

users3: [{name:zs,age:12},{name:ls,age:18}]

7、引用数据格式

# 出现大量相同的情况
a: c:\windows\system\a
b: c:\windows\system\b
c: c:\windows\system\c

# 引用数据
baseDir: c:\windows\system
# 如果出现转移字符,使用双引号包含
tempDir: "${baseDir}\temp \a \b"
# 使用${属性名}引用数据
tempDir1: ${baseDir}\a
tempDir2: ${baseDir}\b
tempDir3: ${baseDir}\c

五、Java读取yaml格式数据

1、注意事项

  • 属性名随便定义
  • 注解中的值与yaml中的名称对应

2、读取常用格式

    // 常用格式
    @Value("${server.port}")
    private String port1;
    System.out.println("port1=====>" + port1);

3、读取字面量格式

 	// 字面量
    @Value("${party}")
    private String party1;
    System.out.println("party1=====>" + party1);

4、读取对象类格式

    // 对象类
    @Value("${user.name}")
    private String name1;
    System.out.println("name1=====>" + name1);

5、读取数组格式

   // 数组
    @Value("${likes[1]}")
    private String likes1;
    System.out.println("likes1=====>" + likes1);

6、读取对象数组格式

    // 对象数组
    @Value("${users[1].age}")
    private String age1;
    System.out.println("age1=====>" + age1);

7、读取全部属性数据

   // 读取全部数据
    @Autowired
    private Environment env;
    System.out.println(env.getProperty("server.port"));
    System.out.println(env.getProperty("user.name"));

8、将数据封装成对象进行读取

# 创建类,用于封装下面的数据
# 由Spring帮我们加载数据到对象中,一定要告诉Spring加载这组信息
# 使用的时候从spring中直接获取信息使用
datasource:
  driver: com.mysql.jdbc.Driver
  url: jdbc:mysql://localhost/springboot_db
  username: root
  password: 111111
package com.sgz.day62_springboot_demo;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * 作者:沈公子
 * 日期:2022/8/12 - 9:29
 * 需求:
 * 1、定义数据模型封装yaml文件中对应的数据
 * 2、定义为spring管控的bean
 * 3、指定加载的数据
 */
@Component
@ConfigurationProperties("datasource")  // 与yaml对应
public class MyDataSource {

    // Java属性名与yaml属性名对应
    private String driver;
    private String url;
    private String username;
    private String password;

    public String getDriver() {
        return driver;
    }

    public void setDriver(String driver) {
        this.driver = driver;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "MyDataSource{" +
                "driver='" + driver + '\'' +
                ", url='" + url + '\'' +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}


    @Autowired
    private MyDataSource myDataSource;
    System.out.println(myDataSource);

六、注解

1、@ConfigurationProperties

  • 绑定配置信息到封装类中
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值