欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring Boot 2从入门到入坟 | 底层注解篇:@ConfigurationProperties配置绑定

程序员文章站 2024-01-09 18:07:28
...

在这篇文章中,我们再来说一个Spring Boot的底层注解,即@ConfigurationProperties。

@ConfigurationProperties注解出现的背景

我们还是举一个例子来说明吧!我们总是习惯于把经常爱变化的一些东西配到配置文件里面,比如我们小时候在学Java的时候,尤其是在数据库开发的时候,是不是经常要把数据库的连接信息,诸如数据库的url连接地址、账号、密码以及数据库连接池的大小等等,配到properties配置文件中啊!然后,未来等到我们需要创建数据库连接池时,再将properties配置文件里面的内容一一解析出来,接着就能创建数据库连接池了,其实呢,数据库连接池就是一个JavaBean,所以,总的来说,这个案例场景就是要把properties配置文件里面的所有配置绑定到JavaBean里面。

那么如何来实现这个绑定过程呢?如果我们还是使用Java原生代码来做,那么这还是挺麻烦的,大概代码就像是下面这样。

public class getProperties {
    public static void main(String[] args) throws FileNotFoundException, IOException {
        Properties pps = new Properties();
        pps.load(new FileInputStream("a.properties"));
        Enumeration enum1 = pps.propertyNames(); // 得到配置文件的名字
        while(enum1.hasMoreElements()) {
            String strKey = (String) enum1.nextElement();
            String strValue = pps.getProperty(strKey);
            System.out.println(strKey + "=" + strValue);
            // 封装到JavaBean...
        }
    }
}

我们是使用Properties这个类来加载我们的配置文件的。然后,再来遍历配置文件里面的每一对key-value值,最后,再把这对对key-value值一一对应封装到JavaBean指定的属性里面。你是不是感觉写Java原生代码也能接受啊?小了,你格局小了!那是你没碰到复杂情况,如果要是别人给你的配置文件,里面乱七八糟,配置了100多行的东东,假设我要你在这100多行的配置里面找到跟数据库连接信息有关的配置,也就那么4、5行,那么这时你该怎么办?是不是有可能需要用到正则表达式等等一大堆的东西,你才可能解析完成啊!

但是,在Spring Boot里面,这个过程就会变得非常简单,而且我们会把这个过程称为配置绑定。