Home >Java >javaTutorial >How to adjust bean loading order in spring or spring boot

How to adjust bean loading order in spring or spring boot

WBOY
WBOYforward
2023-05-11 12:10:132439browse

spring or spring boot adjust the loading order of beans

Next, we will explain three ways to adjust the class loading order:

1. Use @Order to adjust the configuration 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();
    }
}

2. Use @Order to adjust the loading order of configuration classes

@Configuration
public class Config {
    @Bean
    @Order(1)
    public CListener bListener(){
        return new CListener();
    }

     @Bean
     @Order(2)
    public DListener dListener(){
        return new DListener();
    }
}

3. Implement the ordered interface:

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!

Statement:
This article is reproduced at:yisu.com. If there is any infringement, please contact admin@php.cn delete