ホームページ  >  記事  >  Java  >  Spring または Spring Boot で Bean のロード順序を調整する方法

Spring または Spring Boot で Bean のロード順序を調整する方法

WBOY
WBOY転載
2023-05-11 12:10:132406ブラウズ

spring または spring boot で Bean のロード順序を調整する

次に、クラスのロード順序を調整する 3 つの方法について説明します:

1. @Order を使用して構成クラスのロードを調整します。 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. @Order を使用して構成クラスの読み込み順序を調整します

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

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

3. 順序付けされたインターフェイスを実装します:

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();
    }
}

順序付けされたメソッドを実装するには、次のものが必要ですgetOrderで値を返しますが、値が小さいほど優先され、レベルが高くなります。

以上がSpring または Spring Boot で Bean のロード順序を調整する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。