赞
踩
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则找到了对应的配置地址。
当我们取某个配置地址中的某一个配置项值时,需要引入@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);
- }
当我们想同时读取一系列配置,或者某些配置很常用
我们不想每次都写一遍获取这些配置项时,就可以使用配置类
即把对应的配置项声明到一个配置类里面,每次只要实例这个类,然后直接用里面的各个对象
- @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 ;
- }
@Resource protected SyncValueProperties syncValueProperties;
3.3.使用配置类
String sftpHost =syncValueProperties.getSftpHost();
或者直接在使用的类里面用@ConfigurationProperties注解
- @ConfigurationProperties(prefix = "sync.sftp")
- public class ***{
- private String host;
- }
这样的作用和 @Value("${sync.sftp.host}") 是一样的。
以上就是如何取配置文件中的配置项的教程了~~
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。