springboot2.2.0新特性@ConstructorBinding

构造函数绑定、

使用final修饰使其不能改变

不可变的 @ConfigurationProperties 绑定

配置属性现在支持基于构造函数的绑定,该绑定使 @ConfigurationProperties 注释的类不可变。可以通过使用 @ConstructorBinding 注释 @ConfigurationProperties 类或其构造函数之一来启用基于构造函数的绑定。可以在配置属性绑定提供的构造函数参数上使用 @DefaultValue 和 @DateTimeFormat 之类的注释

@ConfigurationProperties("acme")
@Data
@ConstructorBinding
public class AcmeProperties {

    private final boolean enabled;

    private final InetAddress remoteAddress;

    private final Security security;

    public AcmeProperties(boolean enabled, InetAddress remoteAddress, Security security) {
        this.enabled = enabled;
        this.remoteAddress = remoteAddress;
        this.security = security;
    }

    public static class Security {

        private final String username;

        private final String password;

        private final List<String> roles;

        public Security(String username, String password,
                        @DefaultValue("USER") List<String> roles) {
            this.username = username;
            this.password = password;
            this.roles = roles;
        }

    }

}
@Configuration
@EnableConfigurationProperties(value = AcmeProperties.class)
public class AcmeConfiguartion {

    @Autowired
    private AcmeProperties acmeProperties;

}

如果您的类具有多个构造函数,则还可以@ConstructorBinding直接在应绑定的构造函数上使用

参考:https://docs.spring.io/spring-boot/docs/2.2.0.RELEASE/reference/html/spring-boot-features.html#boot-features-external-config-constructor-binding


文章作者: Ciwei
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Ciwei !
 上一篇
Matery主题安装豆瓣插件 Matery主题安装豆瓣插件
介绍前几天发现一个很好用的插件,可以将自己在豆瓣上面的电影、书籍、游戏清单显示在 Hexo 搭建的博客页面上。由于 Matery 也是由 Hexo 驱动的,所以就想的安装来看看。 安装完,配置完,效果是惨不忍睹,可能由于没有适配,画面太美不
2019-11-02
下一篇 
typora插件vlook typora插件vlook
下载插件 访问官方主页下载最新发布版本:https://github.com/MadMaxChow/VLOOK/releases 可基于VLOOK\3-demo\VLOOK-Template 文档模板.md来创建你自己的文档,VLOOK\3
2019-10-31
  目录