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}") 是一样的。

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

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐