精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

高效初始化!Spring Boot 3.3借助DAG加速Spring Beans加載!

開發 前端
本文詳細介紹了如何在 Spring Boot 3.3 中實現異步執行任務的最佳實踐。我們通過配置 YAML 文件、創建配置屬性類、實現異步任務服務類和控制器,最后使用前端 jQuery 調用異步接口,展示了異步任務的完整實現流程。

在現代軟件開發中,異步編程已成為提升系統性能和用戶體驗的重要手段。特別是在高并發場景下,異步任務的處理能夠有效降低響應時間,提高系統的可伸縮性。Spring Boot 3.3 提供了便捷的異步編程支持,使得開發者可以輕松實現高效的任務調度。本篇文章將詳細探討如何在 Spring Boot 項目中優雅地實現異步任務,包括配置、實現和調用的最佳實踐。

運行效果:

圖片圖片

若想獲取項目完整代碼以及其他文章的項目源碼,且在代碼編寫時遇到問題需要咨詢交流,歡迎加入下方的知識星球。

在本文中,我們將通過具體的代碼示例,講解如何配置 YAML 文件、創建配置屬性類、實現異步任務的服務類,以及如何通過前端頁面調用異步接口。通過這些步驟,你將能夠構建一個響應快速且高效的 Spring Boot 應用。

項目結構

首先,確保你的項目結構如下:

src
├── main
│   ├── java
│   │   └── com
│   │       └── icoderoad
│   │           └── async
│   │               ├── AsyncApplication.java
│   │               ├── config
│   │               │   ├── AsyncConfig.java
│   │               │   └── TaskProperties.java
│   │               ├── controller
│   │               │   └── TaskController.java
│   │               └── service
│   │                   └── TaskService.java
│   └── resources
│       ├── application.yml
│       └── templates
│           └── index.html
└── pom.xml

項目 pom.xml 配置

確保在 pom.xml 中引入必要的依賴:

<?xml versinotallow="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>3.3.4</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.icoderoad</groupId>
	<artifactId>async-spring-boot</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>async-spring-boot</name>
	<description>Demo project for Spring Boot</description>
	
	<properties>
		<java.version>17</java.version>
	</properties>
	<dependencies>
		<dependency>
	        <groupId>org.springframework.boot</groupId>
	        <artifactId>spring-boot-starter-web</artifactId>
	    </dependency>
	    <dependency>
	        <groupId>org.springframework.boot</groupId>
	        <artifactId>spring-boot-starter-thymeleaf</artifactId>
	    </dependency>
	    <dependency>
	        <groupId>org.projectlombok</groupId>
	        <artifactId>lombok</artifactId>
	        <optional>true</optional>
	    </dependency>
	    <dependency>
	        <groupId>org.springframework.boot</groupId>
	        <artifactId>spring-boot-starter-validation</artifactId>
	    </dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

YAML 屬性文件配置

在 src/main/resources/application.yml 中添加以下配置:

server:
  port: 8080
  
task:
  pool:
    core-size: 5  # 線程池核心大小
    max-size: 10   # 線程池最大大小
    queue-capacity: 25  # 隊列容量
    timeout: 5000  # 任務超時時間,單位毫秒

創建配置屬性類

創建 TaskProperties.java 來讀取 YAML 配置:

package com.icoderoad.async.config;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import lombok.Data;

@Data
@Component
@ConfigurationProperties(prefix = "task.pool")  // 讀取 task 下的配置
public class TaskProperties {
	
    private int coreSize;
    
    private int maxSize;
    
    private int queueCapacity;
    
    private int timeout;
    
}

創建異步配置類

在 AsyncConfig.java 中使用配置屬性類進行任務初始化:

package com.icoderoad.async.config;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;

@Configuration
@EnableAsync  // 啟用異步功能
@EnableScheduling  // 啟用定時任務
public class AsyncConfig {

    @Autowired
    private TaskProperties taskProperties;

    @Bean
    public ThreadPoolTaskExecutor taskExecutor() {
        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        executor.setCorePoolSize(taskProperties.getCoreSize());
        executor.setMaxPoolSize(taskProperties.getMaxSize());
        executor.setQueueCapacity(taskProperties.getQueueCapacity());
        executor.setThreadNamePrefix("Async-");
        executor.initialize();
        return executor;
    }
}

創建服務類

在 TaskService.java 中創建更典型的異步任務配置:

package com.icoderoad.async.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import com.icoderoad.async.config.TaskProperties;

import java.util.concurrent.CompletableFuture;

@Service
public class TaskService {

    @Autowired
    private TaskProperties taskProperties;

    @Async  // 表示該方法是異步執行的
    public CompletableFuture<String> executeAsyncTask() {
        try {
            Thread.sleep(taskProperties.getTimeout());  // 模擬耗時操作
            return CompletableFuture.completedFuture("異步任務執行完成!");
        } catch (InterruptedException e) {
            Thread.currentThread().interrupt();
            return CompletableFuture.completedFuture("任務被中斷!");
        }
    }
}

創建控制器

在 TaskController.java 中創建一個控制器來調用異步服務并返回 JSON 格式的接口:

package com.icoderoad.async.controller;

import java.util.concurrent.CompletableFuture;

import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.icoderoad.async.service.TaskService;

@RestController
@RequestMapping("/tasks")
public class TaskController {

    private final TaskService taskService;

    public TaskController(TaskService taskService) {
        this.taskService = taskService;
    }

    @PostMapping("/async-task")
    public ResponseEntity<CompletableFuture<String>> asyncTask() {
        CompletableFuture<String> result = taskService.executeAsyncTask();  // 調用異步任務
        return ResponseEntity.ok(result);
    }
}

創建前端頁面

在 src/main/resources/templates/index.html 中添加以下代碼,并使用 jQuery 調用 JSON 接口:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>異步任務示例</title>
    <link rel="stylesheet" >
    <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
    <h1>異步任務示例</h1>
    <button id="startTask" class="btn btn-primary">開始異步任務</button>
    <p id="result"></p>
</div>

<script>
    $(document).ready(function() {
        $('#startTask').click(function() {
            $.ajax({
                url: '/tasks/async-task',
                type: 'POST',
                contentType: 'application/json',  // 設置請求內容類型為 JSON
                dataType: 'json',  // 期望的響應數據類型
                success: function(data) {
                    $('#result').text(data);  // 顯示返回結果
                },
                error: function() {
                    $('#result').text('任務執行失敗!');
                }
            });
        });
    });
</script>
</body>
</html>

啟動測試

  1. 啟動 Spring Boot 應用:運行 AsyncApplication.java,確保應用成功啟動。
  2. 訪問前端頁面:打開瀏覽器并訪問 http://localhost:8080/index.html。
  3. 點擊按鈕:點擊“開始異步任務”按鈕,觸發異步任務的執行。
  4. 觀察行為:

立即返回:在點擊按鈕后,接口會立即返回,而不是等任務執行完。這是因為任務是異步執行的。

注意

這種設計允許用戶在等待異步任務完成時,繼續與頁面進行其他交互,提升了用戶體驗。這意味著,即使后臺任務還在執行,用戶也可以繼續操作頁面,而不會被阻塞。這樣,可以在高并發場景下有效提升系統的響應能力。

結論

本文詳細介紹了如何在 Spring Boot 3.3 中實現異步執行任務的最佳實踐。我們通過配置 YAML 文件、創建配置屬性類、實現異步任務服務類和控制器,最后使用前端 jQuery 調用異步接口,展示了異步任務的完整實現流程。

異步任務不僅提高了系統的響應速度,還能夠有效管理后臺處理任務,降低用戶等待時間。通過合理的線程池配置和異步執行的設計,我們可以使應用程序在高并發情況下依然表現出色。希望本文能為大家在實際項目中實現異步處理提供有效的參考,提升開發效率和用戶體驗。

責任編輯:武曉燕 來源: 路條編程
相關推薦

2024-10-29 11:27:27

2024-10-30 08:05:01

Spring參數電子簽章

2024-10-07 08:18:05

SpringBOM管理

2023-05-03 23:48:24

Spring容器初始化

2024-03-05 18:21:02

LFSpring初始化

2025-05-21 10:09:09

Spring 5.xIOC編程

2025-03-14 10:37:24

SpringSpring IOC容器

2021-07-12 12:20:08

Spring初始化方案

2024-09-26 09:28:06

內存Spring

2024-10-11 11:46:40

2024-03-08 08:26:25

類的加載Class文件Java

2024-11-29 07:42:47

2024-01-23 08:47:13

BeanSpring加載方式

2025-07-01 01:00:00

Spring消息系統Redis

2019-01-15 11:40:14

開發技能代碼

2024-09-05 09:35:58

CGLIBSpring動態代理

2025-04-28 08:39:48

Spring初始化開發

2023-11-12 23:08:17

C++初始化

2025-04-25 11:25:00

SpringBean初始化

2022-11-09 07:49:12

Records類聲明代碼
點贊
收藏

51CTO技術棧公眾號

亚洲va中文在线播放免费| 欧美性猛交 xxxx| 999国产精品永久免费视频app| 欧美日韩国产一二三| 欧美另类videosbestsex日本| 手机看片1024国产| 免费成人美女在线观看.| 美女久久久久久久| 成人在线一级片| 欧美影院视频| 欧美在线一二三| 99在线免费视频观看| 啊v视频在线| 东方aⅴ免费观看久久av| 国产精品久久久久免费a∨| 九九热精彩视频| 日韩精品免费一区二区三区| 亚洲国产福利在线| 北条麻妃亚洲一区| 巨胸喷奶水www久久久| 亚洲一区在线播放| 一区二区精品国产| 黄色在线播放| 不卡一区在线观看| 91天堂在线观看| 性色av一区二区三区四区| av不卡在线看| 欧美精品久久久久久久久| 性色国产成人久久久精品| 清纯唯美亚洲经典中文字幕| 日韩三级中文字幕| 青青草久久伊人| 日本欧美韩国| 一本色道久久综合亚洲精品按摩| 免费看毛片的网址| h片在线播放| 亚洲欧洲www| 亚洲精品自在在线观看| 国产私人尤物无码不卡| 99久久免费视频.com| 999在线免费观看视频| 国产乱人乱偷精品视频| 奇米色777欧美一区二区| 日本在线精品视频| 欧产日产国产69| caoporn97在线视频| 精品欧美午夜寂寞影院| 欧美日韩国产高清一区二区| 污污的网站18| 亚洲四虎影院| 日本高清成人免费播放| 国产精品亚洲αv天堂无码| 国产福利片在线观看| 一区二区三区不卡在线观看| 97久久国产亚洲精品超碰热| 啦啦啦中文在线观看日本| 一区二区三区资源| 轻点好疼好大好爽视频| 麻豆福利在线观看| 亚洲一二三四区| 九色自拍视频在线观看| 蜜桃视频在线网站| 欧美性猛交xxxx乱大交3| 四虎永久在线精品无码视频| 性欧美freehd18| 欧美日韩一区小说| caoporm在线视频| 欧一区二区三区| 亚洲精品99久久久久中文字幕| 国产伦精品一区三区精东| 日本欧美三级| 一夜七次郎国产精品亚洲| 国产免费嫩草影院| 综合激情网站| 91精品国产乱码久久久久久蜜臀 | 亚洲一区二区在线视频| 欧美激情亚洲天堂| 美女100%一区| 6080午夜不卡| 波多野结衣加勒比| 免费成人结看片| 久久精品国产欧美亚洲人人爽| 中文字幕av免费在线观看| 中文精品在线| 国产精品情侣自拍| 成 人片 黄 色 大 片| 日韩久久久久久久久久| 91久久黄色| 日本亚洲精品在线观看| 一级黄色片在线观看| 国产激情视频一区二区在线观看| 国产日韩欧美一区二区三区四区 | 最近2019年手机中文字幕| 午夜剧场免费在线观看| 亚洲看片免费| 国产欧美日韩综合精品| 免费成人在线看| 欧美国产禁国产网站cc| 日本五级黄色片| 国产日韩另类视频一区| 日韩免费视频一区二区| 88久久精品无码一区二区毛片| 欧美独立站高清久久| 91精品国产色综合| 国产精品天天操| 26uuu亚洲综合色| 欧美三级午夜理伦三级老人| 自拍网站在线观看| 日韩一级免费观看| 免费成人深夜天涯网站| 一区二区三区四区五区精品视频| 成人a在线观看| 青青久在线视频| 亚洲自拍偷拍九九九| 无限资源日本好片| 日韩激情毛片| 欧美黄色性视频| 亚洲综合网av| 国产人成一区二区三区影院| 久久人人爽人人爽人人av| 日韩福利在线观看| 亚洲人线精品午夜| 日本少妇性高潮| 国产一区二区导航在线播放| 亚洲国产一区在线| 二区三区不卡| 日韩av在线导航| 久久久国产精华液| 国产精品夜夜嗨| 五月天色婷婷综合| 国产在视频一区二区三区吞精| 国产免费播放一区二区| 日韩成人在线电影网| 裸体武打性艳史| 精品夜夜嗨av一区二区三区| 日韩精品最新在线观看| xxxxxx欧美| 精品无码久久久久久国产| 久久精品第一页| 国产精品自拍在线| 最新av在线免费观看| 国产精品原创视频| 综合国产在线观看| 中文字幕一区二区人妻| 久久精品人人爽人人爽| 久草精品在线播放| 国产探花在线精品一区二区| 人人做人人澡人人爽欧美| 全部免费毛片在线播放网站| 欧美视频在线看| 国产精品一区二区入口九绯色| 国产精品毛片在线| 久久综合狠狠综合久久综青草| 精品众筹模特私拍视频| 欧美r级在线观看| 精品少妇久久久| 白白色亚洲国产精品| 国产特级淫片高清视频| 牛牛精品成人免费视频| 538国产精品一区二区免费视频 | 尤物99国产成人精品视频| 在线视频精品免费| 国产精品久久久久久久午夜片| 91高清国产视频| 欧美99在线视频观看| 91偷拍精品一区二区三区| wwww亚洲| 亚洲欧洲激情在线| 亚洲性在线观看| 亚洲综合免费观看高清完整版| 国产伦精品一区二区免费| 日韩视频三区| 亚洲黄色成人久久久| 精品国产一区二区三区性色av| 欧美乱妇40p| 丝袜+亚洲+另类+欧美+变态| 欧美亚洲免费在线一区| 国产成人av免费在线观看| 成人h版在线观看| 亚洲精品高清无码视频| 日韩av片在线播放| 亚洲毛片网站| 色播亚洲婷婷| 久久久久久久久久久久电影| 26uuu另类亚洲欧美日本老年| 国产午夜视频在线观看| 337p亚洲精品色噜噜狠狠| 国产精品1000| 欧美极品xxx| 337p日本欧洲亚洲大胆张筱雨| 亚洲在线成人| 警花观音坐莲激情销魂小说| 欧美调教视频| 国产一区二区香蕉| 精精国产xxxx视频在线播放| 日韩最新在线视频| 三级理论午夜在线观看| 欧美理论电影在线| 国产尤物在线视频| 亚洲欧美日韩综合aⅴ视频| 18禁裸乳无遮挡啪啪无码免费| 黄色小说综合网站| 丰满人妻中伦妇伦精品app| 亚洲国产一区二区在线观看| 欧美日韩一区在线视频| 青草伊人久久| 国产日韩欧美自拍| 日本美女一区| 91精品国产色综合久久不卡98口 | 欧美精品videossex性护士| 国产日韩精品在线看| 日韩精品自拍偷拍| 日本一区二区三区久久| 天天av天天翘天天综合网| 亚洲二区在线播放| 国产三级精品视频| 北岛玲一区二区| 盗摄精品av一区二区三区| 久热精品在线观看视频| 噜噜噜在线观看免费视频日韩 | 免费不卡av| 久久精品视频在线观看| 国产区在线视频| 日韩成人小视频| 欧美一级一区二区三区| 欧美一卡在线观看| 国产一区二区三区成人| 色婷婷av一区二区三区软件| 久久久国产高清| 亚洲.国产.中文慕字在线| 九九视频在线观看| 欧美色就是色| 中文日韩在线视频| 欧美日韩激情视频一区二区三区| 亚洲精品一区二区三区精华液| 国产深喉视频一区二区| 欧美日韩国产综合一区二区| 日韩中文字幕高清| 欧美专区亚洲专区| 国产第一页在线观看| 日本高清成人免费播放| 国产又粗又猛又黄视频| 欧美性高潮在线| 日韩视频在线观看一区| 欧美视频在线观看免费网址| 美女又爽又黄免费视频| 欧美性xxxx极品hd满灌| 性无码专区无码| 日韩欧美精品网站| 国产亚洲欧美日韩高清| 欧美视频一区二| 亚洲天堂网在线视频| 欧美精品在线一区二区| 国产精品久久久国产盗摄| 在线成人av网站| 国产欧美一级片| 精品国产免费一区二区三区四区 | 国产日韩在线免费观看| 91成人网在线| 亚洲最新av网站| 日韩欧美一级二级三级| 黄色美女一级片| 日韩精品福利在线| 黄色毛片在线观看| 中文字幕亚洲欧美日韩在线不卡| 免费在线看黄| 欧美国产欧美亚洲国产日韩mv天天看完整| 免费影视亚洲| 日本不卡高字幕在线2019| 国产精品黄色片| 91影视免费在线观看| www.久久东京| 欧美日韩一区二区视频在线观看| 日韩精品影视| 黄色特一级视频| 亚洲男人影院| 亚洲xxx在线观看| 国产乱子轮精品视频| 国产a级黄色片| 久久久精品国产免大香伊 | 亚洲va在线va天堂| 无码无套少妇毛多18pxxxx| 欧美日韩高清一区二区三区| 动漫av一区二区三区| 亚洲视频视频在线| 成人一对一视频| 好吊一区二区三区| 亚洲中文字幕无码av永久| 热久久一区二区| 中文字幕在线观看91| 国产欧美日韩在线视频| 国产一二三四在线| 欧美三级中文字幕| 人妻无码中文字幕免费视频蜜桃| 一区二区三区国产视频| 免费男女羞羞的视频网站在线观看| 国产成人短视频| 日韩高清一区| 手机成人在线| 在线精品亚洲| 蜜臀一区二区三区精品免费视频| 成人国产精品免费观看| 最新日韩免费视频| 五月天久久比比资源色| 6—12呦国产精品| 日韩风俗一区 二区| 成人免费观看视频大全| 日韩av成人在线观看| 亚洲国产aⅴ精品一区二区| 日韩免费一区二区三区| 亚洲日本视频| 在线观看av免费观看| 国产欧美一区二区精品婷婷| 国产系列精品av| 欧美一区二区三区喷汁尤物| 成a人片在线观看www视频| 91产国在线观看动作片喷水| 亚洲成人偷拍| 无码人妻aⅴ一区二区三区日本| 石原莉奈一区二区三区在线观看| 久久久老熟女一区二区三区91| 自拍偷自拍亚洲精品播放| 欧美日韩a v| 日韩二区三区在线| 波多野结衣久久| 亚洲sss综合天堂久久| 精品一区电影| 无码人妻h动漫| 99久久99久久久精品齐齐| 黄页网站免费观看| 56国语精品自产拍在线观看| 黄色片在线免费看| 国产成人福利网站| 国产成人ay| 情侣黄网站免费看| 久久婷婷综合激情| 三级黄色在线视频| 日韩av在线精品| 最近高清中文在线字幕在线观看1| 国产精品一区在线播放| 亚洲性视频h| www.四虎精品| 午夜精品爽啪视频| 少妇高潮一区二区三区69| 久久免费福利视频| 久久综合另类图片小说| 免费欧美一级视频| 国产性做久久久久久| 人妻中文字幕一区二区三区| 中文字幕精品久久久久| 国产免费无遮挡吸奶头视频| av不卡一区二区三区| 日韩在线视频免费播放| 亚洲美女喷白浆| 怡红院成人在线| 一本色道久久综合亚洲二区三区| 精一区二区三区| av成人免费网站| 精品国产区一区| 国模套图日韩精品一区二区| 亚洲aⅴ天堂av在线电影软件| 老司机精品视频在线| 国产suv一区二区三区| 日韩精品在线看片z| 91av久久| 奇米精品在线| 久久av资源网| 免费一级片视频| 亚洲免费视频在线观看| 成人mm视频在线观看| 在线观看免费黄色片| 国产福利一区二区三区视频 | 一本大道久久a久久综合婷婷| 黄色网址在线播放| 成人黄色短视频在线观看| 国产精品jizz在线观看美国| 亚洲中文字幕无码av| 一本到高清视频免费精品| 欧美jizz18性欧美| 国产欧美韩日| 蜜桃一区二区三区在线观看| 中文字幕手机在线观看| 亚洲精品视频在线播放| 日本一区二区中文字幕| 日韩中字在线观看| 欧美韩国日本综合| 亚洲成人777777| 国产精品久久久久久av福利| 欧美99在线视频观看| 中文字字幕码一二三区| 7777精品伊人久久久大香线蕉| jizzjizz中国精品麻豆| 日韩av高清在线播放| 国产大陆a不卡| 综合久久中文字幕| 久久久久久com| 久久亚洲国产| 91精品国产自产| 日韩午夜电影av| 国精产品一区一区三区四川|