SpringBoot @ConfigurationProperties注解的简单使用
作者:WinterJay 发布时间:2021-09-03 12:21:57
标签:SpringBoot,@ConfigurationProperties,注解
目录
源码
使用
源码
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ConfigurationProperties {
@AliasFor("prefix")
String value() default "";
@AliasFor("value")
String prefix() default "";
boolean ignoreInvalidFields() default false;
boolean ignoreUnknownFields() default true;
}
使用
向注解中传入配置文件中的前缀名,如果配置文件如下:
myConfigs:
config1:
field1: f1
field2: f2
field3: f3
那么代码中的配置类应该这样写:
@Component
@ConfigurationProperties("myConfigs.config1")
public class MyConfig1 {
String field1;
String field2;
String field3;
}
如上所示,field1, field2, field3三个属性就被绑定到了对象上。
注意到我们使用了@Component,实际上我们使用配置类都是将其注入到其他类中,所以我们往往将其注册为Bean。
ignoreInvalidFields默认为false,不合法的属性的属性会默认抛出异常;
ignoreUnknownFields默认为true, 未能识别的属性会被忽略(所以打错了名字就会被忽略了)
@ConfigurationProperties(prefix="config.prefix", ignoreInvalidFields=true, ignoreUnknownFields=false)
public class MyConfig {
// fields
}
Spring Boot的绑定规则相当宽松,myField, my-field, my_field等都能识别绑定到myField上。
可以给字段设定默认值,这样配置中没有传入时会使用默认值。
@ConfigurationProperties("your.prefix")
public class YourConfig {
private String field = "Default"
// setter
}
类的字段必须要有public访问权限的setter方法。
在很多情况下public的setter方法时必须的,使用IDEA的话,这里推荐Alt+Insert(Windows, Mac使用Alt+n)生成;当然,想使用Lombok也可以
来源:https://juejin.cn/post/6961684414824710174


猜你喜欢
- 一:对象,JavaBean,SpringBean的区别1.什么是JavaBeanjavaBean要求所有属性为私有,该类必须有一个公共无参构
- 1.user实体package com.demo.dto;public class User { private Integer
- 文件输出为字符串示例代码:/** * 读取文件为字符串 * * @return */pub
- 字节数组的关键在于它为存储在该部分内存中的每个8位值提供索引(快速),精确的原始访问,并且您可以对这些字节进行操作以控制每个位。 坏处是计算
- 最近在学习JavaWeb时,有用到鼠标移动事件,所以今天在这里记录一个相关的案例,同时也是对相关知识的一个巩固,效果为在鼠标移动到表格对应行
- HttpServletResponse接口的sendRedirect()方法可用于将响应重定向到另一个资源,它可以是Servlet,Jsp或
- 缘起:利用 ContentProvider 来初始化你的 Library, 这个相信大家已经不太陌生了,下面简要说下。1. 利用 Conte
- Java类库及其组织结构(Java API)Java 官方为开发者提供了很多功能强大的类,这些类被分别放在各个包中,随JDK一起发布,称为J
- 最近项目中用到的两种文件上传方式做一下总结:一. uploadify:uploadify控件的scripts和styles在这里:图片上传J
- 今天我们来讲一下Android中BroadcastReceiver的相关知识。BroadcastReceiver也就是“广播接收者”的意思,
- 分页是Java Web项目常用的功能,昨天在Spring MVC中实现了简单的分页操作和搜索分页,在此记录一下。使用的框架为(MyBatis
- ·嵌套管程死锁是如何发生的·具体的嵌套管程死锁的例子·嵌套管程死锁 vs 死锁嵌套管程锁死类似于死锁, 下面是一个嵌套管程锁死的场景:Thr
- 一、概述无意中翻到的FoldingLayout的介绍的博客,以及github地址。感觉很nice呀,于是花了点时间研究以及编写,本篇博客将带
- 实现方式通过挨个罗列的方式一次复制子对象是非常耗费人力的,如果子对象是引用类型,则还要需要考虑是否对子对象进一步深拷贝。实际应用中,一个类如
- Android setButtonDrawable()的兼容问题解决办法setButtonDrawable()的兼容问题API1
- 本文实例为大家分享了C#支付宝新版支付请求接口调用的具体代码,供大家参考,具体内容如下因为支付宝已经集成了完整的SDK,所以可以使用SDK直
- 开发过程中经常用到加载圈,特别是车机开发由于外设不同很多操作响应的等待时长经常要用到不同的加载圈。首先,直接上菊花效果图,这是我直接从项目里
- 本文以C#代码为例介绍如何实现将彩色PDF文件转为灰度(黑白)的PDF文件,即 将PDF文档里面的彩色图片或者文字等通过调用PdfGrayC
- Servlet3.0的出现是servlet史上最大的变革,其中的许多新特性大大的简化了web应用的开发,为广大劳苦的程序员减轻了压力,提高了
- 1. 问题所示编译ssm的项目的时候出现了这个错误导致一直运行不起来SLF4J: Failed to load class "or