在開發(fā)的過程中 , 我們?yōu)榱烁綦x環(huán)境的差異 , 通常需要使用一些配置文件 , Spring 提供了一些組件 , 使得使用配置文件的工作變得更加方便 .
配置文件
job.registry.servers=192.168.186.131:2181,192.168.185.172:2181,192.168.183.79:2181
job.registry.namespace=
job.registry.env-prefix=
job.registry.contact-name=
job.registry.contact-mobile=
job.registry.job-type=
job.registry.nodes[0].ip=192.168.186.131
job.registry.nodes[0].port=2181
job.registry.nodes[1].ip=192.168.185.172
job.registry.nodes[1].port=2181
job.registry.nodes[2].ip=192.168.183.79
job.registry.nodes[2].port=2181
job.registry.node.ip=192.168.183.79
job.registry.node.port=2181
代碼
// 1.
@Configuration
// 2.
@PropertySource(encoding = "utf-8" , value = "file:/fileName.properties")
// 3.
@ConfigurationProperties(prefix = "job.registry")
public class RegistryCenterProperties {
//解析成集合
private List<String> servers;
//解析成對象的集合
private List<Node> nodes;
//解析成對象
private Node node;
private String namespace;
//解析成駝峰命名法
private String envPrefix;
private String jobType;
private String contactName;
private String contactMobile;
//get and set ...
}
@Configuration : 標(biāo)記這是一個(gè)的配置類
@PropertySource : 標(biāo)記我們需要加載的配置文件 和 編碼集 等信息 ,
這里需要注意的是 , Spring 會(huì)將 @PropertySource 所標(biāo)記的文件 , 加載到容器內(nèi)的 Environment 當(dāng)中 ,
如果同一個(gè)配置文件的內(nèi)容 , 需要映射到多個(gè)類里面 , 我們只需要聲明一次 , 不需要重復(fù)聲明 .
@ConfigurationProperties : 這個(gè)注解 可以標(biāo)記在類上面 , 也可以標(biāo)記在方法上面 , 被這個(gè)注解修飾的類或方法 會(huì)被**ConfigurationPropertiesBeanRegistrar **這個(gè)類解析 , 并生成代理對象 .
在使用這個(gè)標(biāo)簽的時(shí)候 , 我們可以通過 prefix 這個(gè)屬性 , 來對文件中前綴相同的配置進(jìn)行映射 .
這里需要注意的是 , 如果我們的key需要駝峰命名的話 , 需要通過 "-" 來進(jìn)行標(biāo)記 .