Spring Boot は、Pivotal チームが提供する新しいフレームワークで、新しい Spring アプリケーションの初期構築および開発プロセスを簡素化するように設計されています。このフレームワークは構成にアドホックなアプローチを使用するため、開発者が定型的な構成を定義する必要がありません。私なりの言葉で理解すると、Spring Boot は実際には新しいフレームワークではなく、Maven がすべての Jar パッケージを統合し、Spring Boot がすべてのフレームワークを統合するのと同じように、デフォルトで多くのフレームワークの使用を構成します。
1) 独立した Spring アプリケーションを作成します;
2) WAR ファイルをデプロイせずに Tomcat、Jetty、または Undertow を直接埋め込みます;
3) Apache Maven 構成を簡素化するために推奨される基本 POM ファイル (スターター) を提供します;
4) 可能な限りプロジェクトの依存関係に従って Spring フレームワークを自動的に構成します;
5) 使用される直接機能を提供します運用環境では、パフォーマンス インジケーター、アプリケーション情報、アプリケーションの健全性チェックなど (
6) をすぐに使用でき、コード生成や大量の XML の構成は必要ありません。特定のニーズに合わせてデフォルト値を変更することもできます。
7) Spring Cloud など、他の多くのプロジェクトが Spring Boot に基づいています。
例:
サービスに hello メソッドを記述し、3 秒遅延させます
@Service public class AsyncService { public void hello(){ try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("数据正在处理!"); } }
コントローラーにこのビジネスを呼び出させます
@RestController public class AsyncController { @Autowired AsyncService asyncService; @GetMapping("/hello") public String hello(){ asyncService.hello(); return "ok"; } }
SpringBoot プロジェクトを開始すると、3 秒後に正常に応答することがわかります。
したがって、この問題を解決するには非同期タスクを使用する必要があります。注釈を追加するのは非常に簡単です。
@hello メソッドの非同期アノテーション
@Service public class AsyncService { //异步任务 @Async public void hello(){ try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("数据正在处理!"); } }
SpringBoot スタートアップ クラスの非同期アノテーション機能を有効にする
@SpringBootApplication //开启了异步注解的功能 @EnableAsync public class Sprintboot09TestApplication { public static void main(String[] args) { SpringApplication.run(Sprintboot09TestApplication.class, args); } }
問題は解決され、サーバーはフロントに応答します。データを即座に終了します!
木が高い場所の光を求めれば求めるほど、その根は下に向かって、土に向かって、そして暗闇の深みへと向かっていきます。
以上がSpringbootで非同期タスクを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。