springbootプロジェクト開始後の実行方法は何ですか?

王林
リリース: 2023-05-27 23:16:46
転載
2032 人が閲覧しました

1 メソッド

  • ApplicationListener< ContextRefreshedEvent> 非推奨

  • ApplicationListener 推奨

  • CommandLineRunner推奨

方法 1: Spring の ApplicationListenerインターフェイス

ApplicationListener インターフェイスを実装し、onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) メソッドを実装します

@Service
public class SearchReceive implements  ApplicationListener<ContextRefreshedEvent> {
   @Override
   public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {
       if (contextRefreshedEvent.getApplicationContext().getParent() == null) {//保证只执行一次
           //需要执行的方法
       }
   }
}
ログイン後にコピー

方法 2 :springboot の ApplicationRunner インターフェイス

ApplicationListener および CommandLineRunner インターフェイスは、Spring コンテナーがロードされた後に指定されたメソッドを実行するために springBoot によって提供されます。 2 つのインターフェイスの主な違いは入力パラメータです。

ApplicationRunner インターフェイスを実装する

@Component
@Order(value = 1)
public class AfterRunner implements ApplicationRunner {
    @Override
    public void run(ApplicationArguments args) throws Exception {
        System.out.println("执行方法");
    }
}
ログイン後にコピー

方法 3: springboot の CommandLineRunner インターフェイス

CommandLineRunner インターフェイスを実装する

@Component
@Order(value = 2)
public class CommandLineRunnerImpl implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        System.out.println("执行方法");
    }
}
ログイン後にコピー

注: ApplicationListener インターフェイスと CommandLineRunner インターフェイスの両方を同時に、ApplicationRunner インターフェイスのメソッドが最初に実行され、次に CommandLineRunner;

@Slf4j
@Component
public class RunnerTest implements ApplicationRunner, CommandLineRunner {
 
  @Override
  public void run(ApplicationArguments args) throws Exception {
    System.out.println("服务启动RunnerTest   ApplicationRunner执行启动加载任务...");
  }
 
  @Override
  public void run(String... args) throws Exception {
    System.out.println("服务启动RunnerTest    CommandLineRunner 执行启动加载任务...");
    }
  }
}
ログイン後にコピー

2 実行順序を指定します

ApplicationRunner インターフェイスと CommondLineRunner インターフェイスの両方がプロジェクトに実装されている場合、 Order アノテーションを使用するか、Ordered インターフェイスを実装することができます。実行順序を指定します。値が小さいほど最初に実行されます。

3 原則

SpringApplication の run メソッドは afterRefresh メソッドを実行します。

afterRefresh メソッドは callRunners メソッドを実行します。

callRunners メソッドは、ApplicationRunner インターフェイスと CommondLineRunner インターフェイスを実装するすべてのメソッドを呼び出します。

以上がspringbootプロジェクト開始後の実行方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート