Java nacos配置中心
1.配置
nacos作为配置中心,界面更加直观,且新增、更改配置项内容时无需修改代码,只需修改对应的配置项,对于开发人员很友好。
平时如果修改了配置,是需要重启系统的,但是加上@RefreshScope这个注解,则不需要重启系统了
java项目中bootstrap-local.yml 配置代表指向nacos配置中心还是本地application-local.yml
当config下enable为true时,指向远程nacos,等于false时则指向本地yml文件
server-addr=nacos服务器地址+端口号
namespace=nacos配置管理对应的代码
group一般为项目名
通过server-addr+namespace+group则找到了对应的配置地址。
2、读取单个配置
当我们取某个配置地址中的某一个配置项值时,需要引入@Value注解
import org.springframework.beans.factory.annotation.Value;
2.1. 获取单项配置值
@RefreshScope
@Configuration
@Getter
@Setter
@Slf4j
public class testProperties {
@Value("${xint.advance.pf.inst-code}")
private String pfAdvInstCode;
}
xint:
advance:
pf:
inst-code: PF
这样,我就拿到了 filepath对应的值
2.2. 获取集合配置
pfFlow:
feeBankCardNos:
- 1234
- 5678
@Value("${pfFlow.feeBankCardNos}")
private List<String> feeBankCardNos;
或者
pfFlow:
feeBankCardNos:;["1234","5678"]
@Value("${pfFlow.feeBankCardNos}")
private List<String> feeBankCardNos;
注意这里要在集合对象上面加上@Getter 和 @Setter注解
这样就拿到了配置的集合,集合里面有两个对象 1234 和 5678
2.2. 获取键值对配置
@Value("#{${xint.paymonitor.qp.bankcodeConvert}}")
private HashMap<String,String> bankcodeConvert;
xint:
paymonitor:
qp:
encrypt: 3132333435363738
bankcodeConvert: "{'5001': '01020000','5002': '01050000'}"
这里拿到的就是键值对类型的配置了
可以通过下面方法分别获取Key和Value放到集合里面
List<String> keyList=new ArrayList<>();
for (String key:bankcodeConvert.values()) {
keyList.add(key);
}
List<String> valueList=new ArrayList<>();
for (String value:bankcodeConvert.keySet()) {
valueList.add(value);
}
3.读取多个配置
当我们想同时读取一系列配置,或者某些配置很常用
我们不想每次都写一遍获取这些配置项时,就可以使用配置类
即把对应的配置项声明到一个配置类里面,每次只要实例这个类,然后直接用里面的各个对象
3.1.声明一个配置类
@RefreshScope
@ToString
@Getter
@Setter
@ConfigurationProperties(SyncValueProperties.PREFIX)
public class SyncValueProperties {
public static final String PREFIX="sync";
/**
* SFTP地址
*/
@Value("${sync.sftp.host}")
private String sftpHost ;
/**
* SFTP端口号
*/
@Value("${sync.sftp.port}")
private String sftpPort ;
/**
* SFTP用户名
*/
@Value("${sync.sftp.userName}")
private String sftpUserName ;
/**
* SFTP密码
*/
@Value("${sync.sftp.passWord}")
private String sftpPassWord ;
/**
* SFTP目录
*/
@Value("${sync.sftp.filePath}")
private String sftpFilePath ;
}
3.2.实例化该配置类
@Resource protected SyncValueProperties syncValueProperties;
3.3.使用配置类
String sftpHost =syncValueProperties.getSftpHost();
或者直接在使用的类里面用@ConfigurationProperties注解
@ConfigurationProperties(prefix = "sync.sftp")
public class ***{
private String host;
}
这样的作用和 @Value("${sync.sftp.host}") 是一样的。
以上就是如何取配置文件中的配置项的教程了~~
更多推荐
所有评论(0)