前言:
大体思路是,建立一个对象,把配置文件的值都放到对象的属性里。
这样,有两步。先是制定映射规则,再新建对象填入属性。
(0)配置文件
(1)制定映射规则
新建一个类,加上@ConfigurationProperties() 注解。这样,就使用了boot的映射规则:按名称相等来映射。
图里加上了@Data来自动生成get、set方法,boot规定set方法必须有。
1.名称不用完全相等,驼峰式和下划线可以互相识别。
2.@ConfigurationProperties注解有几个值可以填:
@ConfigurationProperties(
ignoreInvalidFields = false, // 是否无视掉,解析出错的配置文件字段。不无视会怎么样?报错
ignoreUnknownFields = true, // 是否无视掉,class文件里少写的字段
prefix = "my.conf" // 变量前缀 或者说 命名空间
)
prefix 是默认选项,图中虽然没写,但用的就是prefix
(2)生成类的实例对象,并填入属性值
spring里生成对象可以只加上@Component、@Configuration或@Service注解。
另外,由他生成对象的同时,也会自动填值。(因为打了@ConfigurationProperties这个注解)
这样就可以了,从spring拿到的,就是填好值的实例。
springboot2代码、maven项目
蓝奏云:https://wws.lanzous.com/ib3hnjvnjre
附:
从配置文件 引入另一个配置文件,可以这么写
也可以用@Value注解,来获取配置的值
https://www.cnblogs.com/javastack/archive/2020/10/23/13862164.html
代码 springboot2、maven项目
蓝奏云:https://wws.lanzous.com/i2Uzdjycj5e
另:
写了@ConfigurationProperties后,有时会有图上的通知
首先,不管他也没关系。这说明,这是一个可选配置。
具体的解决办法是,在pom文件中添加processor依赖
那这个可选配置的作用是什么呢?
-- (1)希望在配置文件里,可以有“智能提示”,像图上这样
-- (2)不知道变量名有没有被改过,想知道写得对不对(这个ip2也被高亮了)
-- 如果是正确的,还可以看到些信息