最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談一下SpringBoot中的異步任務(wù)

 更新時間:2023年10月17日 10:38:36   作者:yuhuofei2021  
這篇文章主要介紹了淺談一下SpringBoot中的異步任務(wù),SpringBoot 中的異步任務(wù)主要是指在 SpringBoot 中使用異步線程完成處理任務(wù),在 SpringBoot 中使用異步線程非常簡單,只需要兩個注解就可以搞定,需要的朋友可以參考下

SpringBoot異步任務(wù)

SpringBoot 中的異步任務(wù)主要是指在 SpringBoot 中使用異步線程完成處理任務(wù)。

在 SpringBoot 中使用異步線程非常簡單,只需要兩個注解就可以搞定。一個是 @EnableAsync (用于開啟異步注解),另一個是 @Async (一般加在方法上,表示該方法異步執(zhí)行)。

1、使用自帶的線程池實現(xiàn)異步任務(wù)

第一步

在啟動類上加上注解 @EnableAsync ,如下所示

在這里插入圖片描述

第二步

寫接口,并將接口的實現(xiàn)方法,用注解 @Async 標(biāo)識。

  • controller層
package com.yuhuofei.controller;

import com.yuhuofei.service.AsyncService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Description
 * @ClassName AsyncController
 * @Author yuhuofei
 * @Date 2022/8/22 21:51
 * @Version 1.0
 */
@RestController
@RequestMapping("/async")
public class AsyncController {

    @Autowired
    private AsyncService asyncService;

    @GetMapping("/getAsyncHello")
    public String getAsyncHello(){
        return asyncService.getHello();
    }
}

service層接口

package com.yuhuofei.service;

/**
 * @Description
 * @ClassName AsyncService
 * @Author yuhuofei
 * @Date 2022/8/22 21:55
 * @Version 1.0
 */
public interface AsyncService {

    String getHello();
}

service層接口實現(xiàn)類

package com.yuhuofei.service;

import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;

/**
 * @Description
 * @ClassName AsyncServiceImpl
 * @Author yuhuofei
 * @Date 2022/8/22 21:55
 * @Version 1.0
 */
@Service
public class AsyncServiceImpl implements AsyncService {

    @Override
    @Async
    public String getHello() {
        return "hello,測試一下";
    }
}

至此完成異步任務(wù)的簡單實現(xiàn)。

2、使用自定義的線程池實現(xiàn)異步任務(wù)

第一步

自定義一個線程池,如下所示

package com.yuhuofei.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;

import java.util.concurrent.Executor;
import java.util.concurrent.ThreadPoolExecutor;

/**
 * @author yuhuofei
 * @version 1.0
 * @description 自定義異步線程池
 * @date 2022/8/22 21:55
 */
@Configuration
@EnableAsync
public class AsyncExecutorConfig {
    private static final int CORE_POOL_SIZE = 10;

    private static final int MAX_POOL_SIZE = 20;

    private static final int QUEUE_CAPACITY = 2000;

    private static final String THREAD_NAME_PREFIX = "AsyncExecutor-self";

    private static final int KEEP_ALIVE_SECONDS = 60 * 10;

    @Bean("asyncExecutor")
    public Executor asyncExecutor() {
        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        executor.setCorePoolSize(CORE_POOL_SIZE);
        executor.setMaxPoolSize(MAX_POOL_SIZE);
        executor.setQueueCapacity(QUEUE_CAPACITY);
        executor.setThreadNamePrefix(THREAD_NAME_PREFIX);
        executor.setAllowCoreThreadTimeOut(true);
        executor.setKeepAliveSeconds(KEEP_ALIVE_SECONDS);
        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
        executor.initialize();
        return executor;
    }
}

第二步

使用自定義線程池,如下所示

在這里插入圖片描述

package com.yuhuofei.service;

import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;

/**
 * @Description
 * @ClassName AsyncServiceImpl
 * @Author yuhuofei
 * @Date 2022/8/22 21:55
 * @Version 1.0
 */
@Service
public class AsyncServiceImpl implements AsyncService {

    @Override
    @Async("asyncExecutor")
    public String getHello() {
        return "hello,測試一下";
    }
}

由于自定義線程池時已經(jīng)開啟了異步注解,因此可以不用在啟動類上加了,至此完成使用自定義線程池實現(xiàn)異步任務(wù)。

到此這篇關(guān)于淺談一下SpringBoot中的異步任務(wù)的文章就介紹到這了,更多相關(guān)SpringBoot異步任務(wù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • idea新建聚合項目并附上標(biāo)簽的詳細(xì)過程

    idea新建聚合項目并附上標(biāo)簽的詳細(xì)過程

    這篇文章主要介紹了idea新建聚合項目并附上標(biāo)簽的詳細(xì)過程,本文通過實例圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • SpringBoot使用阿里OSS實現(xiàn)文件云存儲的方法

    SpringBoot使用阿里OSS實現(xiàn)文件云存儲的方法

    這篇文章主要介紹了SpringBoot使用阿里OSS實現(xiàn)文件云存儲,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • SpringBoot 微信退款功能的示例代碼

    SpringBoot 微信退款功能的示例代碼

    這篇文章主要介紹了SpringBoot 微信退款功能的實現(xiàn),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • java8新特性教程之time包使用總結(jié)

    java8新特性教程之time包使用總結(jié)

    Java8新增了date和time的util包,下面這篇文章主要給大家介紹了關(guān)于java8新特性教程之time包使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • 詳解Java兩種方式簡單實現(xiàn):爬取網(wǎng)頁并且保存

    詳解Java兩種方式簡單實現(xiàn):爬取網(wǎng)頁并且保存

    本篇文章主要介紹了Java兩種方式簡單實現(xiàn):爬取網(wǎng)頁并且保存 ,主要用UrlConnection、HttpClient爬取實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2016-12-12
  • SpringBoot?Test的webEnvironment源碼解讀

    SpringBoot?Test的webEnvironment源碼解讀

    這篇文章主要為大家介紹了SpringBoot?Test的webEnvironment源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Spring Boot Gateway 從入門到精通全面指南

    Spring Boot Gateway 從入門到精通全面指南

    Spring Cloud Gateway 作為微服務(wù)架構(gòu)中的重要組件,提供了強大而靈活的路由與過濾功能,通過本教程,您應(yīng)該已經(jīng)了解了如何集成 Spring Cloud Gateway、如何配置路由規(guī)則以及如何利用其豐富的功能來滿足各種業(yè)務(wù)需求,感興趣的朋友跟隨小編一起看看吧
    2025-09-09
  • springboot通過jar包啟動中文日志亂碼問題及解決

    springboot通過jar包啟動中文日志亂碼問題及解決

    這篇文章主要介紹了springboot通過jar包啟動中文日志亂碼問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 在Spring項目開發(fā)中Domain層的使用解析

    在Spring項目開發(fā)中Domain層的使用解析

    Domain是領(lǐng)域?qū)拥暮诵臄?shù)據(jù)載體,主要在領(lǐng)域?qū)觾?nèi)部及與Service層之間傳遞,用于封裝核心業(yè)務(wù)概念和規(guī)則,這篇文章給大家介紹在Spring項目開發(fā)中,Domain層的作用詳解,感興趣的朋友跟隨小編一起看看吧
    2026-02-02
  • 搭建SpringBoot項目三種方式(圖文教程)

    搭建SpringBoot項目三種方式(圖文教程)

    Springboot作為當(dāng)下最主流的java開發(fā)框架,已成為IT從業(yè)人員的入門必備技能,本文主要介紹了搭建SpringBoot項目三種方式,感興趣的可以了解一下
    2023-09-09

最新評論

延寿县| 永嘉县| 杭州市| 大洼县| 湖北省| 益阳市| 三原县| 时尚| 通许县| 全州县| 商河县| 珲春市| 射阳县| 盘山县| 哈密市| 盱眙县| 昌黎县| 汉寿县| 游戏| 新蔡县| 余江县| 大姚县| 凌云县| 大余县| 泸州市| 河间市| 宜州市| 屯留县| 扬中市| 滨州市| 平南县| 城市| 阿克苏市| 平邑县| 兴义市| 叶城县| 西和县| 横山县| 金门县| 大同县| 定结县|