SpringBoot mbeanExporter重复加载报错

     前几天发现同事用的IDEA在调使用方法的时候可以显示变量名,今天有点时间换了最新版本的IDEA也有了这个功能,可是料被我踩坑上了。报错信息如下:

Constructor in org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration required a single bean, but 2 were found:  - mbeanExporter: defined by method 'mbeanExporter' in class path resource [org/springframework/context/annotation/MBeanExportConfiguration.class]  - endpointMBeanExporter: defined by method 'endpointMBeanExporter' in class path resource [org/springframework/boot/actuate/autoconfigure/EndpointMBeanExportAutoConfiguration.class]。

通过异常信息可以看出是因为mbeanExporter定义重复出现的问题。可是代码都没动为什么会出现这样的问题呢?百思不得其解,后来发现EndpointMBeanExportAutoConfiguration和MBeanExportConfiguration两个配置类同时声名这个bean。于是我把EndpointMBeanExportAutoConfiguration在启动的时候排除了。解决了问题。可是原来不加配置也是可以的啊。于是继续查找原因,后来发现SpringApplicationAdminJmxAutoConfiguration自动配置 spring.application.admin.enabled默认值为false是不进行自动配置的于新增了一配置项spring.application.admin.enabled=false可以正常启动了。于是我在想是哪改变了这个配置顶的值。后来无意发现了这个问题。原来是IDEA惹的祸,在启动配置页ENABLE JMX AGENT这项是勾选的。所以引发了此问题。见下图:


SpringBoot mbeanExporter重复加载报错_第1张图片

SpringBoot mbeanExporter重复加载报错_第2张图片

SpringBoot mbeanExporter重复加载报错_第3张图片

折腾了一天终于把这个问题解决了。

你可能感兴趣的:(SpringBoot mbeanExporter重复加载报错)