博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ConfigurationProperties实现
阅读量:2155 次
发布时间:2019-05-01

本文共 1808 字,大约阅读时间需要 6 分钟。

ConfigurationProperties 

@Target({ ElementType.TYPE, ElementType.METHOD })@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface ConfigurationProperties {		@AliasFor("prefix")	String value() default "";		@AliasFor("value")	String prefix() default "";	boolean ignoreInvalidFields() default false;		boolean ignoreUnknownFields() default true;}

 

application.properties

my.bean.load=truemy.bean.id=1my.bean.ip=192.168.3.1

MyProperties

@Component@ConfigurationProperties("my.bean")public class MyProperties {    private String id;    private String ip;    private String load;    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getIp() {        return ip;    }    public void setIp(String ip) {        this.ip = ip;    }    public String getLoad() {        return load;    }    public void setLoad(String load) {        this.load = load;    }    @Override    public String toString() {        return "MyProperties{" +                "id='" + id + '\'' +                ", ip='" + ip + '\'' +                ", load='" + load + '\'' +                '}';    }}

ConfigurationPropertiesBindingPostProcessor

ConfigurationProperties通过BeanPostProcessor的后置处理来实现

public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {	bind(ConfigurationPropertiesBean.get(this.applicationContext, bean, beanName));	return bean;}

 

JavaBeanBinder

private 
boolean bind(DataObjectPropertyBinder propertyBinder, Bean
bean, BeanSupplier
beanSupplier, Context context) { boolean bound = false; // 所有属性 for (BeanProperty beanProperty : bean.getProperties().values()) { bound |= bind(beanSupplier, propertyBinder, beanProperty); context.clearConfigurationProperty(); } return bound;}

 

 

 

 

 

 

转载地址:http://kkawb.baihongyu.com/

你可能感兴趣的文章
seq2seq 的 keras 实现
查看>>
seq2seq 入门
查看>>
什么是 Dropout
查看>>
用 LSTM 做时间序列预测的一个小例子
查看>>
用 LSTM 来做一个分类小问题
查看>>
详解 LSTM
查看>>
按时间轴简述九大卷积神经网络
查看>>
详解循环神经网络(Recurrent Neural Network)
查看>>
为什么要用交叉验证
查看>>
用学习曲线 learning curve 来判别过拟合问题
查看>>
用验证曲线 validation curve 选择超参数
查看>>
用 Grid Search 对 SVM 进行调参
查看>>
用 Pipeline 将训练集参数重复应用到测试集
查看>>
PCA 的数学原理和可视化效果
查看>>
机器学习中常用评估指标汇总
查看>>
什么是 ROC AUC
查看>>
Bagging 简述
查看>>
详解 Stacking 的 python 实现
查看>>
简述极大似然估计
查看>>
用线性判别分析 LDA 降维
查看>>