国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SpringBoot原理分析 | 任務(wù):異步、郵件、定時

這篇具有很好參考價值的文章主要介紹了SpringBoot原理分析 | 任務(wù):異步、郵件、定時。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

SpringBoot原理分析 | 任務(wù):異步、郵件、定時,spring boot,java,rxjava

??wei_shuo的個人主頁

??wei_shuo的學(xué)習(xí)社區(qū)

??Hello World !


任務(wù)

異步任務(wù)

Java異步指的是在程序執(zhí)行過程中,某些任務(wù)可以在后臺進(jìn)行,而不會阻塞程序的執(zhí)行。通常情況下,Java異步使用線程池來實(shí)現(xiàn),將任務(wù)放入線程池中,等待線程池中的線程執(zhí)行這些任務(wù)。Java異步可以提高程序的性能和并發(fā)能力,尤其是在處理IO密集型任務(wù)時,可以大大減少等待時間,提高程序的響應(yīng)速度。常見的Java異步實(shí)現(xiàn)方式包括Future、CompletableFuture、RxJava等

  • service/AsyncService.java
package com.wei.service;

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

/**
 * @ClassName AsyncService
 * @Description TODO
 * @Author wei_shuo
 * @Date 2023/5/9 18:30
 * @Version 1.0
 */

@Service
public class AsyncService {
    
    //告訴Spring這是異步方法
    @Async
    public void hello(){
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        System.out.println("數(shù)據(jù)正在處理……");
    }
}
  • controller/AsyncController.java
package com.wei.controller;

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

/**
 * @ClassName AsyncController
 * @Description TODO
 * @Author wei_shuo
 * @Date 2023/5/9 18:33
 * @Version 1.0
 */

@RestController
public class AsyncController {

    @Autowired
    AsyncService asyncService;

    @RequestMapping("/hello")
    public String hello(){
        asyncService.hello();
        return "OK";
    }
}
  • SpringbootTestApplication啟動類配置注解
package com.wei;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableAsync;

@SpringBootApplication
//開啟異步注解功能
@EnableAsync
public class SpringbootTestApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootTestApplication.class, args);
    }
    
}

郵件任務(wù)

  • 導(dǎo)入依賴
     <!--javax.mail-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
  • application.properties
spring.mail.username=1096075493@qq.com
spring.mail.password=cjkglgqynqwabaed
spring.mail.host=smtp.qq.com
#開啟加密驗(yàn)證
spring.mail.properties.mail.smtp.ssl.enable=true

  • Test測試
package com.wei;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;

@SpringBootTest
class SpringbootTestApplicationTests {

    @Autowired(required=false)
    JavaMailSenderImpl javaMailSender;

    //簡單郵件
    @Test
    void contextLoads() {
        SimpleMailMessage mailMessage = new SimpleMailMessage();
        //主題
        mailMessage.setSubject("wei_shuo");
        //內(nèi)容
        mailMessage.setText("Hello,World!");
        mailMessage.setFrom("1096075493@qq.com");
        mailMessage.setTo("1096075493@qq.com");
        javaMailSender.send(mailMessage);
    }

    //復(fù)雜郵件
    @Test
    void contextLoads2() throws MessagingException {

        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        //組裝
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
        helper.setSubject("wei_shuo-plus");
        helper.setText("<p style='color:red'>Hello,World-Plus</p>",true);
        //附件
        helper.addAttachment("1.jpg",new File("C:\\Users\\ws199\\Desktop"));
        helper.setFrom("1096075493@qq.com");
        helper.setTo("1096075493@qq.com");
        javaMailSender.send(mimeMessage);
    }

    /**
     *
     * @param html
     * @param subject
     * @param text
     * @throws MessagingException
     */

    //封裝方法
    public void sendMail(Boolean html,String subject,String text) throws MessagingException {
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        //組裝
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,html);
        helper.setSubject(subject);
        helper.setText(text,true);
        //附件
        helper.addAttachment("1.jpg",new File("C:\\Users\\ws199\\Desktop"));
        helper.setFrom("1096075493@qq.com");
        helper.setTo("1096075493@qq.com");
        javaMailSender.send(mimeMessage);
    }

}

定時任務(wù)

  • SpringbootTestApplication.java
package com.wei;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication
//開啟異步注解功能
@EnableAsync
//開啟定時功能的注解
@EnableScheduling
public class SpringbootTestApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootTestApplication.class, args);
    }

}
  • ScheduledService.java
package com.wei.service;

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

/**
 * @ClassName ScheduledService
 * @Description TODO
 * @Author wei_shuo
 * @Date 2023/5/10 18:23
 * @Version 1.0
 */
@Service
public class ScheduledService {
  
    //固定時間,執(zhí)行代碼
    @Scheduled(cron = "0/2 * * * * *")
    public void hello(){
        System.out.println("Hello,你被執(zhí)行了……");
    }
}

?? 結(jié)語:創(chuàng)作不易,如果覺得博主的文章賞心悅目,還請——點(diǎn)贊??收藏??評論??


SpringBoot原理分析 | 任務(wù):異步、郵件、定時,spring boot,java,rxjava文章來源地址http://www.zghlxwxcb.cn/news/detail-599585.html

到了這里,關(guān)于SpringBoot原理分析 | 任務(wù):異步、郵件、定時的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【SpringBoot篇】Spring_Task定時任務(wù)框架

    【SpringBoot篇】Spring_Task定時任務(wù)框架

    Spring Task 是 Spring 框架提供的一種任務(wù)調(diào)度和異步處理的解決方案。 可以按照約定的時間自動執(zhí)行某個代碼邏輯 它可以幫助開發(fā)者在 Spring 應(yīng)用中輕松地實(shí)現(xiàn)定時任務(wù)、異步任務(wù)等功能,提高應(yīng)用的效率和可維護(hù)性。 Spring Task 的主要特點(diǎn)包括: 簡單易用:Spring Task 提供了簡

    2024年02月04日
    瀏覽(24)
  • Spring Boot中的@Scheduled注解:定時任務(wù)的原理與實(shí)現(xiàn)

    Spring Boot中的@Scheduled注解:定時任務(wù)的原理與實(shí)現(xiàn)

    本文將詳細(xì)探討Spring Boot中@Scheduled注解的使用,包括其原理、實(shí)現(xiàn)流程、步驟和代碼示例。通過本文,讀者將能夠了解如何在Spring Boot應(yīng)用中輕松創(chuàng)建和管理定時任務(wù)。 在Spring框架中,@Scheduled注解用于標(biāo)記一個方法,使其能夠在固定的時間間隔內(nèi)自動執(zhí)行。這個注解主要基于

    2024年02月22日
    瀏覽(27)
  • Spring Boot進(jìn)階(69):輕松實(shí)現(xiàn)定時任務(wù)持久化!SpringBoot集成quartz帶你玩轉(zhuǎn)定時任務(wù)刪除、暫停、獲取等操作!【附項目源碼】

    Spring Boot進(jìn)階(69):輕松實(shí)現(xiàn)定時任務(wù)持久化!SpringBoot集成quartz帶你玩轉(zhuǎn)定時任務(wù)刪除、暫停、獲取等操作!【附項目源碼】

    ????????現(xiàn)如今,隨著市場競爭加劇,各個企業(yè)都在不斷尋求提高效率、降低成本的方法,此時使用自動化工具已成為必不可少的選擇。而在眾多的自動化工具中,定時任務(wù)已經(jīng)成為一項必備工具,而Quartz就是一個非常好用的定時任務(wù)框架,它的輕量級、高可靠性、易于使

    2024年02月09日
    瀏覽(31)
  • Spring Boot進(jìn)階(68):如何用SpringBoot輕松實(shí)現(xiàn)定時任務(wù)?集成Quartz來幫你!(附源碼)

    Spring Boot進(jìn)階(68):如何用SpringBoot輕松實(shí)現(xiàn)定時任務(wù)?集成Quartz來幫你!(附源碼)

    ????????Quartz是一個非常流行的開源調(diào)度框架,它提供了許多強(qiáng)大的功能,如定時任務(wù)調(diào)度、作業(yè)管理、任務(wù)持久化等。而SpringBoot是目前Java開發(fā)中非常流行的框架之一,其對各種開源框架集成非常方便。本篇文章將介紹如何在SpringBoot中集成Quartz,以便于更好的管理和調(diào)度

    2024年02月07日
    瀏覽(26)
  • Celery結(jié)合flask完成異步任務(wù)與定時任務(wù)

    Celery結(jié)合flask完成異步任務(wù)與定時任務(wù)

    Celery 常用于 web 異步任務(wù)、定時任務(wù)等。 使用 redis 作為 Celery的「消息代理 / 消息中間件」。 這里通過Flask-Mail使用qq郵箱延時發(fā)送郵件作為示例 使用 Flask-Mail 發(fā)送郵件需要進(jìn)行一下配置,其中QQ郵箱授權(quán)碼的獲取方式如下所述: 點(diǎn)進(jìn)qq郵箱,在設(shè)置里面點(diǎn)擊賬號,向下滾動開

    2024年02月07日
    瀏覽(23)
  • Django 如何使用 Celery 完成異步任務(wù)或定時任務(wù)

    以前版本的 Celery 需要一個單獨(dú)的庫(django-celery)才能與 Django 一起工作, 但從 Celery 3.1 開始,情況便不再如此,我們可以直接通過 Celery 庫來完成在 Django 中的任務(wù)。 以 Docker 安裝為例,安裝一個密碼為 mypassword 的 Redis 服務(wù)端 在 Django 項目中創(chuàng)建一個 celery.py 文件,并配置

    2023年04月25日
    瀏覽(17)
  • java中定時任務(wù) schedule 分布式下沒有鎖住 時間不同步 執(zhí)行滯后 相對時間 系統(tǒng)時間 spring springboot

    java.util.Timer計時器可以進(jìn)行:管理任務(wù)延遲執(zhí)行(“如1000ms后執(zhí)行任務(wù)”),及周期性執(zhí)行(“如每500ms執(zhí)行一次該任務(wù)”)。 但是,Timer存在一些缺陷,應(yīng)考慮使用ScheduledThreadPoolExecutor代替,Timer對調(diào)度的支持是基于絕對時間,而不是相對時間的,由此任務(wù)對系統(tǒng)時鐘的改變是敏感

    2024年02月10日
    瀏覽(28)
  • SpringBoot整合郵件任務(wù)(qq為例)

    SpringBoot整合郵件任務(wù)(qq為例)

    目錄 前言: 1.創(chuàng)建SpringBoot的項目并導(dǎo)入mail依賴 2.查看源碼并配置yaml相關(guān)信息 1.源碼信息 ?2.配置yaml文件 3.密碼是用qq郵箱的POP3/SMTP服務(wù) 3.編寫程序并進(jìn)行測試 1.簡單文字郵件 2.復(fù)雜類型郵件 總結(jié) SpringBoot相對于spring更加便捷高效,不再需要再進(jìn)行過多的配置類,而是只需要

    2023年04月10日
    瀏覽(18)
  • Spring Boot異步任務(wù)、異步消息

    Spring Boot異步任務(wù)、異步消息

    目錄 1.異步任務(wù) 1.1.概述 1.2.使用 2.異步消息 2.1.概述 2.2.使用 舉一個例子,我現(xiàn)在有一個網(wǎng)上商城,客戶在界面點(diǎn)擊下單后,后臺需要完成兩步: 1.創(chuàng)建客戶訂單 2.發(fā)短信通知客戶訂單號 這里面第2步是個高耗時的操作,如果全部擠在一條主線程里做,效果就會是客戶點(diǎn)了一

    2023年04月22日
    瀏覽(34)
  • Spring Schedule:Spring boot整合Spring Schedule實(shí)戰(zhàn)講解定時發(fā)送郵件的功能

    Spring Schedule:Spring boot整合Spring Schedule實(shí)戰(zhàn)講解定時發(fā)送郵件的功能

    ???? 歡迎光臨,終于等到你啦 ???? ??我是 蘇澤 ,一位對技術(shù)充滿熱情的探索者和分享者。???? ??持續(xù)更新的專欄 《Spring 狂野之旅:從入門到入魔》 ?? 本專欄帶你從Spring入門到入魔 ? 這是蘇澤的個人主頁可以看到我其他的內(nèi)容哦???? 努力的蘇澤 http://suzee.blog.

    2024年03月14日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包