代码之家  ›  专栏  ›  技术社区  ›  Vijay Nandwana

迁移到SpringBoot2.0后,应用程序上下文侦听器不工作

  •  1
  • Vijay Nandwana  · 技术社区  · 6 年前

    我们最近将SpringBoot从1.5迁移到了2.0。在迁移之后,当我运行应用程序时,将调用自定义上下文侦听器,如果在尚未创建的源之前添加属性源,那么它将使用 exit code 1 .

    带弹簧套1.5.x, ConfigFileApplicationListener 添加 applicationConfigurationProperties 列出可用的属性源。

    出于某种原因, 应用程序配置属性 迁移后未添加,因为以下代码失败:

    event.getEnvironment().getPropertySources().addBefore("applicationConfigurationProperties", new MapPropertySource("aws", parameters));
    

    带弹簧1.5.x

    o.s.w.c.s.StandardServletEnvironment:Adding PropertySource 'aws' with search precedence immediately higher than 'applicationConfigurationProperties'
    

    我也启用了以下日志,但没有看到任何异常:

    logging.level.org.springframework=TRACE
    logging.level.org.springframework.context=TRACE
    logging.level.org.springframework.boot=TRACE
    logging.level.org.springframework.core=TRACE
    

    所有应用程序侦听器实现 ApplicationListener<ApplicationEnvironmentPreparedEvent> . 我查看了迁移指南,发现添加了一个新事件, ApplicationStartedEvent 但这不应该有什么区别。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Andy Wilkinson    6 年前

    没有名为的属性源 applicationConfigurationProperties 在弹簧靴2中。从配置文件派生的属性源的名称现在包括找到该文件的位置的详细信息。例如,如果您有 application.properties 文件在类路径的根目录下,将有一个名为 applicationConfig: [classpath:/application.properties] .