Next, we will explain three ways to adjust the class loading order:
@Configuration @Order(1) public class ConfigA { @Bean public ServiceA serviceA(){ System.out.println("ConfigA 执行"); return new ServiceA(); } } @Configuration @Order(2) public class ConfigB { @Bean public ServiceB serviceB(){ System.out.println("ConfigB 执行"); return new ServiceB(); } }
@Configuration public class Config { @Bean @Order(1) public CListener bListener(){ return new CListener(); } @Bean @Order(2) public DListener dListener(){ return new DListener(); } }
public class AListener implements ApplicationListener<ContextRefreshedEvent>, Ordered { private CuratorManagerComponent curatorManagerComponent; @Override public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) { logger.info("AListener 执行了。"); } @Override public int getOrder() { return HIGHEST_PRECEDENCE; } } public class BListener implements ApplicationListener<ContextRefreshedEvent>, Ordered { private CuratorManagerComponent curatorManagerComponent; @Override public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) { logger.info("BListener 执行了。"); } @Override public int getOrder() { return HIGHEST_PRECEDENCE + 2; } } @Configuration public class Config { @Bean public BListener bListener(){ return new BListener(); } @Bean public AListener aListener(){ return new AListener(); } }
For implementing the ordered method, you need to return a value in getOrder. The smaller the value, the priority is given. The higher the level.
The above is the detailed content of How to adjust bean loading order in spring or spring boot. For more information, please follow other related articles on the PHP Chinese website!