第三节 SpringBoot项目配置及yaml文件

第三节 SpringBoot项目配置及yaml文件


​ Spring Boot项目可以通过多种方式进行配置,包括application.properties文件、application.yml文件、命令行参数、环境变量等。这些配置可以用来设置应用程序的端口号、数据库连接信息、日志级别等。

1. Spring Boot项目配置

application.properties 配置文件是创建项目后就自带的,如果我们要自定义属性,可以在其中直接配置,配置过程如下:

application.properties 中添加我们要自定义的配置;

demo.id=8888
demo.name=demo

创建实体类来映射我们配置的属性;

package com.demo.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "demo")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class DemoProperties {
    private int id;
    private String name;
}

定义 Controller 来注入测试;

package com.demo.controller;

import com.demo.pojo.demoProperties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/demo")
public class demoPropertiesController {
    private static final Logger logger = LoggerFactory.getLogger(demoPropertiesController.class);

    @Autowired
    DemoProperties demoProperties;

    @GetMapping("/profile")
    public String demoProfile(){
        logger.info("---------------");
        logger.info(demoProperties.toString());
        logger.info("---------------");
        return demoProperties.toString();
    }
}
2. yaml文件

​ yaml是一种常用的数据序列化格式,它以可读性强、简洁明了的语法著称。在Spring Boot项目中,可以使用application.yml文件来代替application.properties文件进行配置。yaml文件使用缩进来表示层次结构,支持列表和键值对两种数据结构。

实现上文代码仅需将application.properties改为application.yml ,如下;

demo:
  id:8888
demo:
  name:demo
3. yml和properties的比较

​ 一般来说,使用 IDEA 创建一个 Spring Boot 项目时,默认都会生成一个 application.properties 的配置文件。该配置文件是用来修改 Spring Boot自动配置的默认值。下面我们简单介绍两种的区别:

以mybatis的配置为例:

  • .properties 格式

    server.port=8081
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    spring.datasource.url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
    spring.datasource.username=root
    spring.datasource.password=root
    
  • .yml 格式

    server:
      port: 8081
    spring:
        datasource:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
          username: root
          password: root
    

从上面的实例我们可以发现,两者的区别主要有以下几点:

语法结构

  • .properties 格式使用的是 键值对形式(key=value),而 .yml 格式则使用的是 树状结构(key: value);
  • .properties 格式通过 . 来连接,用 = 来赋值,结构上比较直接,而 .yml 格式则使用 : 来分层,结构上呈现树状结构,层次感明显,而且赋值时 : 的后边必须 接着一个空格再赋值

执行先后顺序
如果一个工程中同时存在两种格式的文件,那么会 优先加载 .yml 文件,然后再加载 .properties,而且后加载的 .properties 会覆盖之前加载的 .yml 文件。

此外,.yml 配置时需要注意以下几点:

  • 缩进必须用空格,不能用 Tab
  • @PropertySource 注解不能加载 yml 文件
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值