Spring手动绑定ConfigurationProperties

摘要:
Spring加载ConfigurationProperties的典型应用是自动加载(Autowired),在一些特殊的场景需要手动修改加载的Property属性。代码实例,config类importjava.util.ArrayList;importjava.util.List;importorg.springframework.boot.context.properties.Configurat

Spring加载ConfigurationProperties的典型应用是自动加载(Autowired),在一些特殊的场景需要手动修改加载的Property属性。

代码实例,config类

importjava.util.ArrayList;
importjava.util.List;

importorg.springframework.boot.context.properties.ConfigurationProperties;

@ConfigurationProperties(prefix="devices")
public classDeviceConfig {

    private List<String> imports = new ArrayList<String>();
    private List<DeviceDetailsProperties> definitions = new ArrayList<DeviceDetailsProperties>();

    public List<String>getImports() {
        return this.imports;
    }

    public List<DeviceDetailsProperties>getDefinitions() {
        returndefinitions;
    }

    public void setImports(List<String>imports) {
        this.imports =imports;
    }

    public void setDefinitions(List<DeviceDetailsProperties>definitions) {
        this.definitions =definitions;
    }
}

DeviceConfig类代码用到的DeviceDetailsProperties,测试演示只有id

public classDeviceDetailsProperties {
    String id;

    publicString getId() {
        returnid;
    }

    public voidsetId(String id) {
        this.id =id;
    }
    @Override
    publicString toString() {
        returnid;
    }
}
测试代码类
importjava.util.Properties;

importorg.springframework.boot.bind.PropertiesConfigurationFactory;

public classTest {

    public static void main(String[] args) throwsException {
        Properties props = newProperties();
        props.put("devices.imports[0]","imp1");
        props.put("devices.imports[1]","imp2");
        props.put("devices.definitions[0].id","first");
        props.put("devices.definitions[1].id", "second");

        DeviceConfig conf = newDeviceConfig();
        PropertiesConfigurationFactory<DeviceConfig> pcf = new PropertiesConfigurationFactory<DeviceConfig>(conf);
        pcf.setProperties(props);
        pcf.setTargetName("devices");
        
        conf =pcf.getObject();
        System.out.println(conf.getImports());
        System.out.println(conf.getDefinitions());
    }

}

运行结果:

image

免责声明:文章转载自《Spring手动绑定ConfigurationProperties》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇前端不同设备的网页字体设置CheckListBox怎样得到多选值?下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

上手七牛云存储

早就听说过七牛云存储,终于有时间上手实践。 1、第一步,注册七牛账号,由于是测试,首先申请的是个人账号 2、注册成功之后,默认是体验账号,每月只有1G的空间容量及1G的下载流量       3、账号认证,认证成功之后将升级为标准账号,每月有10G的空间容量及20G的下载流量       虽然认证麻烦了些,但看得出来,七牛还是很良心的,这种免费套餐对于一...

微信分享接口的java开发的一些小步骤

1.配置接口信息进行验证 代码如下:     /**     * 访问没认证的地址跳转     *     * @param request     * @return 登录页面     * @throws Exception     */    @RequestMapping(value = "/checkWxDomainUrl", method =...

Java学习第十五章 之 Map、可变参数、Collections

1 /* 2 3 Map:存储键值对 4 5 键不能重复存储,值可以重复 6 7 每一个键对应一个值 8 9 方法: 10 11 v put(K key , V value)将指定的键和值添加到集合中 12 13 v get(Object o...

httpclient4例子

参考:http://hc.apache.org/httpclient-3.x/tutorial.html importorg.apache.http.HttpEntity; importorg.apache.http.client.methods.CloseableHttpResponse; importorg.apache.http.client.me...

MyBatis配置文件(四)--typeHandlers

typeHandlers又叫类型处理器,就像在JDBC中,我们在PreparedStatement中设置预编译sql所需的参数或执行sql后根据结果集ResultSet对象获取得到的数据时,需要将数据库中的类型和java中字段的类型进行转换一样,在MyBatis中使用typeHandler来实现。所以说白了,typeHandlers就是用来完成javaTy...

Beetl学习总结(3)——高级功能

3.1. 配置GroupTemplate Beetl建议通过配置文件配置配置GroupTemplate,主要考虑到未来可能IDE插件会支持Beetl模板,模板的属性,和函数等如果能通过配置文件获取,将有助于IDE插件识别。 配置GroupTemplate有俩种方法 配置文件: 默认配置在/org/beetl/core/beetl-default.pr...