SpringBoot 配置文件

配置文件的分类

1.系统的配置文件,比如链接字符串,日志的相关设置,是系统设定好的

2.用户自定义的

配置文件的格式

1.   .properties

2.   .yml

SpringBoot中配置文件位于src/main/resources下

 规则

1.一个项目中可以存下两种配置文件(properties 和 yml)但是不建议这么做

2.当一个项目的某个配置,出现在两种格式的配置文件中,以properties为准,忽略yml的配置

3.properties默认是不支持中文的,关闭之后再打开会乱码。

解决方法:springboot 配置文件 application.properties 中文乱码问题解决方案_钢铁的面条的博客-CSDN博客

如果properties 文件 输入时没有配置提示,则安装spring tools 插件

properties 配置文件基本语法:

key=value 例如:server.port=8081 等号左右不要写空格,后面也不要多加了空格,可能会出错

spring官方的 配置文件 文档:

Common Application Properties

读取配置文件

如果在项目中,想要主动的读取配置文件中的内容,可以使用 @Value 注解来实现。
@Value 注解使用“${}”的格式读取,如下代码所示:

读取 .properties 的配置:

package com.example.demo;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class UserController {

    //将application.properties 中的 server.port 配置 赋值给 serverPort
    @Value("${server.port}")
    private Integer serverPort;

    @ResponseBody
    @RequestMapping("/sayhi")
    public String sayHi() {
        return "Hello World" + " port:" + serverPort;
    }
}

读取 .yml 的配置

#系统配置
spring:
  main:
    banner-mode: off

#自定义配置
myyml:
  ymlstr: ymlstring

package com.example.demo;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class UserController {

    @Value("${server.port}")
    private Integer serverPort;

    @Value("${myyml.ymlstr}")
    private String ymlstr;

    @ResponseBody
    @RequestMapping("/sayhi")
    public String sayHi() {
        return "Hello World" + " port:" + serverPort + " ymlstr:" + ymlstr;
    }
}

yml和properties

properties 配置是以 key-value 的形式配置的,如下图所示:

从上述配置key看出,properties 配置文件中会有很多的冗余的信息,比如这些: 

 yml 是 YMAL 是缩写,它的全称 Yet Another Markup Language 翻译成中文就是“另一种标记语言”。
yml 是一个可读性高,易于理解,用来表达数据序列化的格式。它的语法和其他高级语言类似,并且可以简单表达清单(数组)、散列表,标量等数据形态,支持多种数据类型。它使用空白符号缩进和大量依赖外观的色,特别适合用来表达或编辑数据结构、各种配置文件等。
yml 最大的优势是可以跨语言,不止是 Java 中可以使用 golang、python 都可以使用 yaml 作为配置文件。

基础语法是“key: value”,注意 key 和 value 之间使用英文冒号加空格的方式组成的,其中的空格不可省略。

相比properties,yml简单很多

yml单双引号的问题:

mystring: 你好\n世界
mystring1: '你好\n世界'
mystring2: "你好\n世界"

 

结论:yml中字符串如果什么都不加或者加单引号 会自动对特殊字符进行转义,而双引号会原语义输出

mystring: 你好\n世界
mystring1: '你好\n世界'
#转义之后
mystring2: "你好\\n世界"

 

yml配置文件读对象

#对象写法一
student:
  id: 1
  age: 18
  name: 张三

#对象写法二
student2: {id: 2,age: 20,name: 李四}

对象类:

package com.example.demo.module;

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

@Data
//prefix 属性对应yml中对象的名字
@ConfigurationProperties(prefix = "student")
//需要在项目启动时就从配置文件中读取,需要加类注解
@Component
public class Student {
    Integer id;
    Integer age;
    String name;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值