在容器刷新早期(所有 BeanDefinition 加载完、实例化之前)把定义顺序调到自己想要的顺序。

📅 2026/7/1 8:57:52
在容器刷新早期(所有 BeanDefinition 加载完、实例化之前)把定义顺序调到自己想要的顺序。
Component public class OrderBeanProcessor implements BeanFactoryPostProcessor { // 让某个 Bean 在普通 Bean 实例化之前提前实例化 Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { PrimaryOrderBean bean beanFactory.getBean(PrimaryOrderBean.class); System.out.println(bean); } } Component public class PrimaryOrderBean { public PrimaryOrderBean() { System.out.println(init primary order bean); } Override public String toString() { return PrimaryOrderBean{toString}; } }此方式的风险可读性差容易踩坑除非写框架否则不建议。5、 AutoConfigureBefore / AutoConfigureAfter仅对 spring.factories 里的自动配置生效当在写自己的starter时想让MyAutoConfiguration在DataSourceAutoConfiguration之前/之后运行。对普通Configuration无效也不会影响Bean实例化顺序只影响配置类解析顺序。Configuration AutoConfigureBefore(DataSourceAutoConfiguration.class) public class MyAutoConfiguration { }