【问题标题】:Changes in Application properties doesn't impact - Springboot应用程序属性的更改不会影响 - Springboot
【发布时间】:2022-01-25 11:03:18
【问题描述】:

我正在使用 Spring Boot 2.5.4。我已经编写了 Web 应用程序。现在我面临 ap​​plication.properties 文件变量的问题。如果我正在更改现有值,则在代码中读取旧值,新定义的对象不会出现。

找到下面的 application.properties 文件

spring.datasource.url=jdbc:mysql://XXXXXXXXXXX:3306/test
spring.datasource.username=user
spring.datasource.password=XXXXXXXXXXXXXXXX
spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver

# Config Variables
ml.url=https://google.com/ml/entities
main.url=https://xxxx.com/staging/mainfile

和应用程序配置java文件

@Component
public class ApplicationConfig {
    
    @Value("${ml.url}")
    public String mlurl;

    @Value("${main.url}")
    public String mainurl;

   @PostConstruct
   public void initThat(){
      that = this;
    }
}

在代码中读取变量为

@RequestMapping("/readfile")
@RestController
public class AppointmentResource {

private static Logger S_LOGGER = LogManager.getLogger( AppointmentResource.class );

@Autowired
private ApplicationConfig applicationConfig;

@GetMapping(value = "/websiteUrl",produces = MediaType.APPLICATION_JSON_VALUE)
public String getProduct() {
    String websiteUrl = applicationConfig.mlurl;
    S_LOGGER.info("website url is " + websiteUrl);
    return websiteUrl;
}
}

编译了几次。然后我将 ml.url 更改为 https://google.com/prod/entities/test

但在代码中我仍然得到https://google.com/ml/entities

任何人都可以帮助从 application.properties 获取最新更改

我在这里感到震惊。帮助

【问题讨论】:

  • 1) application.properties 中的更改需要重新部署/重新启动 Spring 应用程序,仅重新编译它是不够的。 2) 如果您从浏览器访问您的 API /websiteUrl,那么它可能会缓存响应并且实际上甚至不会命中端点。尝试将一些令牌添加到浏览器 URL /websiteUrl?101010 以防止缓存
  • @NikolaiShevchenko:是的,我通过 (mvn clean install) 重新部署了 jar,但它没有从 application.properties 获得最新值。
  • mvn clean install 本身不会导致重新部署。它只编译 jar 并将其放入 Maven 存储库
  • @NikolaiShevchenko:如果我错了,请纠正我。根据我的理解,在 pom.xml 中正常添加 spring-boot-devtools 将重新编译。如果没有,请建议如何做。
  • 忽略我的最后评论,因为您在原始问题中没有提到 spring-boot-devtools

标签: spring-boot spring-mvc java-11


【解决方案1】:

我修好了。它是从文件夹配置中挑选的。我为不同的环境创建的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-23
    • 1970-01-01
    • 2010-12-24
    • 2019-06-19
    • 1970-01-01
    • 2022-08-04
    • 1970-01-01
    相关资源
    最近更新 更多