mercyblitz / thinking-in-spring-boot-samples

小马哥书籍《Spring Boot 编程思想》示例工程
Apache License 2.0
1.9k stars 793 forks source link

第368页自定义starter问题 #53

Closed itxingfeichen closed 4 years ago

itxingfeichen commented 5 years ago

走向自动装配章节,FormatterAutoConfiguration会出现比JacksonAutoConfiguration提前被初始化的情况,也就是说在FormatterAutoConfiguration初始化的时候,ObjectMapper还没有被初始化,会导致如下条件永远成立 @Bean @ConditionalOnClass(name = "com.fasterxml.jackson.databind.ObjectMapper") @ConditionalOnMissingBean(type = "com.fasterxml.jackson.databind.ObjectMapper") public Formatter jsonFormatter() { return new JsonFormatter(); } 在个人测试过程中是这样,望小马哥解答。自动配置的顺序是如何控制的?

mercyblitz commented 4 years ago

不同的操作系统可能存在加载 Class 的时机不同,如果你想绝对的控制的话,那么增加 @AutoConfigureBefore@AutoConfigureAfter