若Nacos地址不是默认的localhost:8848,单独配置不生效

Blade 未结 1 723
wayhbbeed
wayhbbeed 剑童 2022-01-17 16:10

一、该问题的重现步骤是什么?

1. Nacos地址不是默认的localhost:8848,单独配置不生效

//直接设置不起作用
PropsUtil.setProperty(props, "spring.cloud.nacos.discovery.server-addr", "192.168.0.177:8849");


二、暂时解决

发现PropsUtil.setProperty方法存在问题:


org.springblade.core.launch.utilsjava.util.Propertiesorg.springframework.util.StringUtilsPropsUtil {
    PropsUtil() {
    }

    setProperty(Properties propsString keyString value) {
        (StringUtils.isEmpty(props.getProperty(key))) {//配置为空时才执行
            props.setProperty(keyvalue)}

    }
}

核心框架class无法修改

在启动项下重写一个方法

LauncherServiceImpl LauncherService {

   (SpringApplicationBuilder builderString appNameString profile) {
      Properties props = System.()(props)(props)(props)(props)}

   (Properties propsString keyString value) {
      (!StringUtils.(props.getProperty(key))) {
         props.setProperty(keyvalue)}

   }

}


1条回答
  • 2022-01-17 22:46

    如果不是默认的localhost,可以直接 props.setProperty 来覆盖。

    你用PropsUtil.setProperty是会先判断是否存在值,如果存在则跳过,所以要用 props.setProperty。

    除此之外,你也可以在启动命令行来指定

    java -jar app.jar --spring.cloud.nacos.discovery.server-addr=x.x.x.x:8848


    0 讨论(0)
提交回复