当前位置:   article > 正文

Java nacos配置中心_获取nacos的yaml配置值

获取nacos的yaml配置值

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. 获取单项配置值

  1. @RefreshScope
  2. @Configuration
  3. @Getter
  4. @Setter
  5. @Slf4j
  6. public class testProperties {
  7. @Value("${xint.advance.pf.inst-code}")
  8. private String pfAdvInstCode;
  9. }
  10. xint:
  11. advance:
  12. pf:
  13. inst-code: PF

这样,我就拿到了 filepath对应的值

2.2. 获取集合配置

  1. pfFlow:
  2. feeBankCardNos:
  3. - 1234
  4. - 5678
  5. @Value("${pfFlow.feeBankCardNos}")
  6. private List<String> feeBankCardNos;

或者

  1. pfFlow:
  2. feeBankCardNos:;["1234","5678"]
  3. @Value("${pfFlow.feeBankCardNos}")
  4. private List<String> feeBankCardNos;

注意这里要在集合对象上面加上@Getter 和 @Setter注解

这样就拿到了配置的集合,集合里面有两个对象 1234 和 5678

2.2. 获取键值对配置

  1. @Value("#{${xint.paymonitor.qp.bankcodeConvert}}")
  2. private HashMap<String,String> bankcodeConvert;
  3. xint:
  4. paymonitor:
  5. qp:
  6. encrypt: 3132333435363738
  7. bankcodeConvert: "{'5001': '01020000','5002': '01050000'}"

这里拿到的就是键值对类型的配置了

可以通过下面方法分别获取Key和Value放到集合里面

  1. List<String> keyList=new ArrayList<>();
  2. for (String key:bankcodeConvert.values()) {
  3. keyList.add(key);
  4. }
  5. List<String> valueList=new ArrayList<>();
  6. for (String value:bankcodeConvert.keySet()) {
  7. valueList.add(value);
  8. }

3.读取多个配置

当我们想同时读取一系列配置,或者某些配置很常用

我们不想每次都写一遍获取这些配置项时,就可以使用配置类

即把对应的配置项声明到一个配置类里面,每次只要实例这个类,然后直接用里面的各个对象

3.1.声明一个配置类

  1. @RefreshScope
  2. @ToString
  3. @Getter
  4. @Setter
  5. @ConfigurationProperties(SyncValueProperties.PREFIX)
  6. public class SyncValueProperties {
  7. public static final String PREFIX="sync";
  8. /**
  9. * SFTP地址
  10. */
  11. @Value("${sync.sftp.host}")
  12. private String sftpHost ;
  13. /**
  14. * SFTP端口号
  15. */
  16. @Value("${sync.sftp.port}")
  17. private String sftpPort ;
  18. /**
  19. * SFTP用户名
  20. */
  21. @Value("${sync.sftp.userName}")
  22. private String sftpUserName ;
  23. /**
  24. * SFTP密码
  25. */
  26. @Value("${sync.sftp.passWord}")
  27. private String sftpPassWord ;
  28. /**
  29. * SFTP目录
  30. */
  31. @Value("${sync.sftp.filePath}")
  32. private String sftpFilePath ;
  33. }

3.2.实例化该配置类

@Resource
protected SyncValueProperties syncValueProperties;

3.3.使用配置类

String sftpHost =syncValueProperties.getSftpHost();

或者直接在使用的类里面用@ConfigurationProperties注解

  1. @ConfigurationProperties(prefix = "sync.sftp")
  2. public class ***{
  3. private String host;
  4. }

这样的作用和     @Value("${sync.sftp.host}") 是一样的。

以上就是如何取配置文件中的配置项的教程了~~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/594473
推荐阅读
相关标签
  

闽ICP备14008679号