[SpringBoot] 绑定/读取配置

参考

https://blog.csdn.net/chengqiuming/article/details/83348733

步骤

application.properties

com.didispace.foo=bar
#推荐使用全小写配合-分割符的方式来配置
com.didispace.database-platform=sql

#使用[]来定位列表类型,也支持逗号分隔方式,两种方式等价
#com.didispace.post=Why Spring Boot,Why Spring Cloud
com.didispace.post[0]=Why Spring Boot
com.didispace.post[1]=Why Spring Cloud

#Map类型的定义格式如下
com.didispace.posts[0].title=Why Spring Boot
com.didispace.posts[0].content=It is perfect!
com.didispace.posts[1].title=Why Spring Cloud
com.didispace.posts[1].content=It is perfect too!

定义类对应 Map 类型

public class PostInfo {
    private String title;
    private String content;
}

定义类接受配置值

public class FooProperties {
private String foo;

public String getFoo() {
    return foo;
}

public String getDatabasePlatform() {
    return databasePlatform;
}

private String databasePlatform;
}

在应用中读取配置

@SpringBootApplication
public class Application {
 
    public static void main(String[] args) {
        ApplicationContext context = SpringApplication.run(Application.class, args);
 
        Binder binder = Binder.get(context.getEnvironment());
 
        // 绑定简单配置
        FooProperties foo = binder.bind("com.didispace", Bindable.of(FooProperties.class)).get();
        System.out.println(foo.getFoo());
 
        // 绑定List配置
        List<String> post = binder.bind("com.didispace.post", Bindable.listOf(String.class)).get();
        System.out.println(post);
 
        List<PostInfo> posts = binder.bind("com.didispace.posts", Bindable.listOf(PostInfo.class)).get();
        System.out.println(posts);
 
        // 读取配置
        System.out.println(context.getEnvironment().containsProperty("com.didispace.database-platform"));
        System.out.println(context.getEnvironment().containsProperty("com.didispace.databasePlatform"));
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值