https://github.com/spring-projects/spring-boot/blob/2642b040732de02e0e4ae88d2f16df902bc6226f/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/AutoConfigurationSorter.java#L103
remove Initially sort alphabetically https://github.com/spring-projects/spring-boot/blob/2642b040732de02e0e4ae88d2f16df902bc6226f/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/AutoConfigurationSorter.java#L60
It is suggested to change it to LinkedHashMap, so that org.springframework.boot.autoconfigure.EnableAutoConfiguration in spring.factories can be sorted according to the order of addition
reason:
1. Sorting by alphabet is not controllable, because the class name may change during the development process
2. In the same file spring.factories, it can be controlled according to the order in which the configuration class is added
Comment From: wilkinsona
Thanks for the suggestion, but ordering auto-configuration files based on a single spring.factories file won't work.
Auto-configuration can be declared across any number of spring.factories files and they need to be ordered based on the complete set, not on a per-spring.factories-file basis. As described in the documentation, auto-configuration should be ordered relatively using @AutoConfigureBefore or @AutoConfigureAfter or absolutely using @AutoConfigureOrder.
The sorting by class name is used as a fallback to provide stable ordering across all known auto-configurations for those that have not configured their ordering.