Spring Boot 的文件配置

SpringBoot的配置文件,有三种格式

1.properties
2.yaml
3.yml(yaml的简写)

这里主要介绍1和3格式的。

在项目中,同时存在properties和yml配置文件, properties的优先级更高

同时存在时,两个文件都生效

如果两个文件中,都包含同一个配置,以properties为主。

properties的配置

key value的形式,以=分割
key 的格式建议是小写,单词之间使用.分割

我们可以在 properties文件中设置配置,然后在其他类中进行读取

复制代码
demo.key = hello


@RestController//为什么必需使用这个注解
public class Controller {

    @Value("${demo.key}")//读配置文件
    private String  key;

    @RequestMapping("/readKey")
    public String readKey(){
        return "读到的配置"+key;
    }
}

切记@value配置中的文件名必需于配置中的相同,如果去掉$,就会把""中的值赋值给当前变量

就会变成这样

yml配置

想要将properties中的配置变成yml的遵守下面规则即可

把.换成冒号+换行key后面用冒号赋值

(Value前面)冒号后面一定要加空格

复制代码
demo.key: hello


@RestController
public class YmlController {


    @Value("${demo.key}")
    private String key;


    @RequestMapping("/readYml")
    public String readYml(){
        return "读取的配置Yml" + key;
    }

}

初始化直接读入配置文件的内容,在tomcat启动之前就进行执行

复制代码
 @PostConstruct
    public void init(){
        System.out.println("key"+key);
        System.out.println("key2"+key2);
    }

文件配置内容中的类型以自己实际为准,不会随便进行转化除了数字10这样类似的,因为无论是哪种类型其都可以,不像dsasda这串字符一样,其只能为字符串类型,不然会报错

yml特殊内容配置

null:使用~

空字符串: key后面直接空着就行了

推荐用单引号或者双引号括起来

这里的转义与以前学的是相反的意思

单引号会对特殊字符进行转义双引号不会进行转义

\n本身表示的是换行

使用单引号时,内容表示成了\n,而不是换行,所以认为是转义使用双引号时, \n表示成了换行,也就是\n的本来含义

下述代码可以从配置文件读取全部数据,pre里面必需与配置文件中的前缀名相同

复制代码
@Component
@ConfigurationProperties(prefix = "student")//pre中的意思就是写出yml文件的前缀是什么进行匹配
@Data
public class Student {

    private Integer id;

    private Integer age;

    private String name;

}

配置集合要加-如果不加空格,这部分内容会变成一个整体,统一赋值给对应属性

相关推荐
迷途之人不知返6 小时前
【文件系统】-4-软硬连接
linux
缓慢更新7 小时前
审批的加签与会签:多人意见怎么合
android·java·数据库·低代码·rxjava
yuniko-n8 小时前
【JUC】volatile 非原子性深入解析
java
1234567890@world8 小时前
正点原子 ATK-DLRK3568 嵌入式Linux系统开发手册V1.3 详细总结
linux·stm32·单片机
sun_weitao8 小时前
极简版 MCP 工具实现方案
java·linux·服务器
金銀銅鐵9 小时前
[Java] 展示增删元素时 LinkedList 的内部变化
java·后端·ai编程
爱和冰阔落10 小时前
【Linux】线程安全进阶:单例模式、可重入函数与死锁排查
linux·运维·安全·单例模式
布吉岛的石头10 小时前
Java 程序员第 50 阶段3:数据工程:预训练语料清洗与去重
java·开发语言·人工智能·深度学习·transformer
先知后行。10 小时前
pimpl
linux
大文说跨境10 小时前
防关联浏览器的指纹覆盖到什么程度:六类参数的实测与自检方法
java·指纹浏览器·tiktok运营