Spring Boot 2.3.1:缺少托管 beans

Spring Boot 2.3.1: managed beans missing

我从 Spring Boot 2.2.6.RELEASE 更新到 2.3.1.RELEASE 突然间,我的所有 @ManagedResources bean 在 JMX 控制台中都丢失了,甚至所有 Spring 引导自己。然而,所有的 jolokia,java.lang,java.nio,org.apache.activemq 和 org.apache.logging.log4j2 都在那里。

有趣的是,只有当应用程序安装在服务器上时才会发生这种情况。当我从 IntelliJ 运行 它时,所有托管 bean 都在那里。

所以我怀疑 bean 的加载顺序有问题,但我真的不知道从哪里开始寻找。有没有人经历过这样的事情?

这是我的申请 class:

@SpringBootApplication(
  scanBasePackageClasses = {
    // Some shared @Component in a common module
    com.example.convert.Import.class,
    com.example.config.Import.class,
    DispatcherApplication.class
  },
  // Since there are two datasources, they need to be configured manually
  exclude = {DataSourceAutoConfiguration.class, JdbcRepositoriesAutoConfiguration.class}
)
@EnableScheduling
@EnableIntegrationGraphController
@EnableIntegrationManagement
@EnableMapRepositories(includeFilters = {@ComponentScan.Filter(type = FilterType.REGEX, pattern = ".+\.map\..+")})
@EnableIntegration
@EnableJms
@EnableRetry
@EnableConfigurationProperties(DispatcherProperties.class)
public class DispatcherApplication {

  public static void main(String[] args) {
    SpringApplication.run(DispatcherApplication.class, args);
  }
}

某处(现在找不到)有人遇到组件扫描已完成的问题after/before一些 JMX 配置,但到目前为止,我还没有自定义任何 JMX 行为。

原来我居然在同一天从2.1.2.RELEASE更新到2.2.6.RELEASE然后又更新到2.3.1.RELEASEJMX is disabled since 2.2.0.M1 (see also: Spring Boot 2.2 Release Notes.

因此,现在需要spring.jmx.enabled=true