Spring Boot的ErrorAttributes
bean由定义ErrorMvcAutoConfiguration
。带有注释,@ConditionalOnMissingBean
因此如果ErrorAttributes
已经定义了bean ,它将取消。由于ErrorsConfig
类定义的Bean 试图覆盖Boot的ErrorAttributes
bean而不是使其退出,因此ErrorsConfig
必须在Boot的ErrorMvcAutoConfiguration
类之后对您的类进行处理。这意味着您的起动器有订购问题。
可以使用@AutoConfigureBefore
和来控制自动配置类的处理顺序@AutoConfigureAfter
。假设ErrorsConfig
本身就是在其中注册的自动配置类spring.factories
,则可以通过使用注释解决问题@AutoConfigureBefore(ErrorMvcAutoConfiguration.class)
。进行此更改后,ErrorsConfig
将ErrorAttributes
在ErrorMvcAutoConfiguration
尝试进行定义之前定义其bean,这将导致BootErrorsAttribute
Bean 的自动配置退出。