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

SpringBoot郵件發(fā)送之文本郵件與HTML郵件的實(shí)現(xiàn)步驟

 更新時(shí)間:2026年04月09日 08:45:21   作者:希望永不加班  
本文介紹了在SpringBoot項(xiàng)目中集成郵件發(fā)送功能的方法,包括SMTP協(xié)議的基礎(chǔ)知識(shí)、SpringBoot郵件發(fā)送組件、環(huán)境配置、代碼實(shí)現(xiàn)及注意事項(xiàng),主要內(nèi)容涉及SMTP協(xié)議介紹、核心組件解析、應(yīng)用場(chǎng)景、SpringBoot集成配置、代碼封裝與測(cè)試、關(guān)鍵注意事項(xiàng)等

在SpringBoot 項(xiàng)目中,郵件發(fā)送是不可或缺的基礎(chǔ)功能,廣泛應(yīng)用于用戶注冊(cè)驗(yàn)證、密碼找回、系統(tǒng)告警、訂單通知等核心場(chǎng)景。SpringBoot 提供的 spring-boot-starter-mail 組件,基于 JavaMail 完成了底層協(xié)議封裝與自動(dòng)化配置,無需開發(fā)者手動(dòng)處理 SMTP 連接、編碼適配等繁瑣操作。

一、核心基礎(chǔ)

  1. 協(xié)議說明:發(fā)送郵件的核心依賴是SMTP 協(xié)議(Simple Mail Transfer Protocol,簡單郵件傳輸協(xié)議),負(fù)責(zé)將郵件從發(fā)件人服務(wù)器傳遞到收件人服務(wù)器。推薦使用加密端口 587(TLS 加密),安全性更高,可有效避免郵件被攔截或篡改;非加密端口 25 因易被垃圾郵件利用,多數(shù)服務(wù)器已屏蔽,不推薦使用。
  2. 核心組件詳解(Spring 自動(dòng)注入,無需手動(dòng)實(shí)例化):
    • JavaMailSender:郵件發(fā)送的核心接口,封裝了郵件發(fā)送的所有核心操作(連接服務(wù)器、發(fā)送郵件、關(guān)閉連接等),SpringBoot 會(huì)根據(jù)配置文件自動(dòng)創(chuàng)建實(shí)例。
    • SimpleMailMessage:專門用于發(fā)送純文本郵件的工具類,用法簡潔,僅支持文本內(nèi)容、收件人、主題等基礎(chǔ)配置,不支持樣式、附件。
    • MimeMessageHelper:復(fù)雜郵件的輔助工具類,簡化 HTML 郵件、帶附件郵件、多收件人(抄送/密送)等場(chǎng)景的配置,解決中文亂碼、樣式解析等常見問題。
  3. 核心應(yīng)用場(chǎng)景:
    • 純文本郵件:適用于系統(tǒng)告警、簡單通知(如服務(wù)器異常提醒、操作日志通知),特點(diǎn)是簡潔、發(fā)送速度快,無需復(fù)雜樣式。
    •  HTML 富文本郵件:適用于用戶交互類場(chǎng)景(如注冊(cè)驗(yàn)證碼、密碼找回、訂單通知、活動(dòng)營銷),支持文字樣式、圖片、鏈接、表格等,提升用戶體驗(yàn),是實(shí)際開發(fā)中最常用的郵件類型。

二、環(huán)境準(zhǔn)備(關(guān)鍵步驟,缺一不可)

發(fā)送郵件前,必須開啟發(fā)件人郵箱的 SMTP 服務(wù),并獲取「授權(quán)碼」—— 授權(quán)碼是第三方應(yīng)用(如 SpringBoot 項(xiàng)目)訪問郵箱的專用密鑰,不同于郵箱登錄密碼,目的是保障郵箱賬號(hào)安全,防止密碼泄露。不同郵箱的開啟方式略有差異,以下是最常用的兩種郵箱操作步驟,詳細(xì)且可直接對(duì)照操作。

1. QQ郵箱

1. 登錄 QQ 郵箱網(wǎng)頁版(https://mail.qq.com/),點(diǎn)擊頂部導(dǎo)航欄的「設(shè)置」,選擇左側(cè)「賬戶」選項(xiàng);

2. 下拉頁面,找到「POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務(wù)」模塊,點(diǎn)擊「開啟POP3/SMTP服務(wù)」;

3. 根據(jù)提示,用綁定 QQ 郵箱的手機(jī)發(fā)送短信驗(yàn)證,驗(yàn)證通過后,系統(tǒng)會(huì)自動(dòng)生成一串授權(quán)碼,復(fù)制并保存(建議存放在配置文件中,丟失可重新生成);

4. 記住 QQ 郵箱的 SMTP 服務(wù)器地址:smtp.qq.com,推薦使用端口:587(TLS 加密),若 587 端口不可用,可切換為 465(SSL 加密)。

2. 163郵箱

1. 登錄 163 郵箱網(wǎng)頁版(https://mail.163.com/),點(diǎn)擊頂部「設(shè)置」,選擇「POP3/SMTP/IMAP」選項(xiàng);

2. 在「SMTP 服務(wù)」模塊,點(diǎn)擊「開啟」,若未設(shè)置過授權(quán)碼,需先設(shè)置授權(quán)碼(建議設(shè)置復(fù)雜密碼,與郵箱登錄密碼區(qū)分開),設(shè)置完成后保存;

3. 163 郵箱的 SMTP 服務(wù)器地址:smtp.163.com,推薦端口:587(TLS 加密),465(SSL 加密)同樣支持,可根據(jù)服務(wù)器環(huán)境選擇。

三、SpringBoot 集成配置

SpringBoot 對(duì)郵件發(fā)送進(jìn)行了自動(dòng)化配置,僅需引入核心依賴、配置相關(guān)參數(shù),即可快速集成,無需編寫額外的配置類(特殊場(chǎng)景除外)。

1. 核心依賴(pom.xml)

僅需引入郵件核心 starter,lombok 用于簡化代碼(可選但推薦,可避免編寫 getter/setter、日志輸出等冗余代碼),無需引入其他額外依賴。

<!-- SpringBoot 郵件發(fā)送核心依賴,自動(dòng)引入 JavaMail 相關(guān)依賴 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<!-- 可選:lombok,簡化代碼,無需寫getter/setter、log日志等 -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional> <!-- 可選依賴,不影響其他模塊 -->
</dependency>
<!-- 可選:spring-boot-starter-web,用于提供測(cè)試接口,若項(xiàng)目已引入可忽略 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

2. 單郵箱配置(application.yml)

配置發(fā)件人郵箱、授權(quán)碼、SMTP 服務(wù)器地址、編碼格式、超時(shí)時(shí)間等核心參數(shù),注釋清晰,可直接替換為自己的郵箱信息,避免因配置錯(cuò)誤導(dǎo)致發(fā)送失敗。

spring:
  mail:
    # 發(fā)件人郵箱地址(QQ/163/企業(yè)郵箱均可,需與下方SMTP地址對(duì)應(yīng))
    username: 123456@qq.com
    # 授權(quán)碼(不是郵箱登錄密碼!是上一步獲取的第三方應(yīng)用授權(quán)碼)
    password: abcdefghijklmnop
    # SMTP 服務(wù)器地址(對(duì)應(yīng)郵箱,不可寫錯(cuò),QQ郵箱:smtp.qq.com;163郵箱:smtp.163.com)
    host: smtp.qq.com
    # 編碼格式,固定為 UTF-8,避免郵件標(biāo)題、內(nèi)容出現(xiàn)中文亂碼
    default-encoding: UTF-8
    # 額外配置:解決超時(shí)、加密、認(rèn)證等問題,生產(chǎn)環(huán)境必配
    properties:
      mail:
        smtp:
          # 必須開啟 SMTP 認(rèn)證(true),否則郵箱服務(wù)器會(huì)拒絕發(fā)送請(qǐng)求
          auth: true
          # 開啟 TLS 加密,提升郵件發(fā)送安全性,避免郵件被攔截
          starttls:
            enable: true
            required: true # 強(qiáng)制使用 TLS 加密
          # 郵件發(fā)送端口,推薦 587(TLS),465(SSL)也可,需與加密方式對(duì)應(yīng)
          port: 587
        # 超時(shí)設(shè)置(單位:毫秒),避免網(wǎng)絡(luò)波動(dòng)、服務(wù)器響應(yīng)慢導(dǎo)致發(fā)送超時(shí)
        timeout: 10000 # 郵件發(fā)送超時(shí)時(shí)間
        connectiontimeout: 10000 # 連接服務(wù)器超時(shí)時(shí)間
        writetimeout: 10000 # 寫入數(shù)據(jù)超時(shí)時(shí)間
# 日志配置(可選,用于排查郵件發(fā)送問題,開發(fā)環(huán)境建議開啟)
logging:
  level:
    # 開啟 Spring 郵件發(fā)送相關(guān)日志,DEBUG 級(jí)別可查看完整發(fā)送流程
    org.springframework.mail: DEBUG
    # 開啟自定義郵件相關(guān)日志(替換為自己的包名)
    com.example.mail: INFO

四、核心代碼

采用「工具類封裝 + 接口測(cè)試」的模式,將郵件發(fā)送邏輯封裝為通用工具類,便于在項(xiàng)目中復(fù)用;提供測(cè)試接口,可快速驗(yàn)證郵件發(fā)送功能,同時(shí)補(bǔ)充異常處理、日志輸出,確保代碼的健壯性。

1. 封裝郵件工具類 MailUtil

整合純文本郵件、HTML 富文本郵件的發(fā)送方法,支持單收件人、多收件人,添加異常捕獲和日志記錄,避免發(fā)送失敗影響主流程;同時(shí)補(bǔ)充代碼注釋,便于后續(xù)維護(hù)和修改。

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
/**
 * 郵件發(fā)送工具類(聚焦文本、HTML 兩種常用郵件,適配多場(chǎng)景復(fù)用)
 * 注:工具類使用 @Component 注解,交給 Spring 管理,可在 Service、Controller 中直接注入使用
 */
@Slf4j // lombok 注解,自動(dòng)生成 log 日志對(duì)象,無需手動(dòng)創(chuàng)建
@Component
@RequiredArgsConstructor // lombok 注解,自動(dòng)注入構(gòu)造方法,無需寫 @Autowired
public class MailUtil {
    // 核心發(fā)送接口,SpringBoot 自動(dòng)根據(jù)配置文件創(chuàng)建實(shí)例,直接注入即可
    private final JavaMailSender javaMailSender;
    // 從 application.yml 配置文件中讀取發(fā)件人郵箱,無需硬編碼
    @Value("${spring.mail.username}")
    private String defaultFromMail;
    // 1. 發(fā)送純文本郵件(重載方法,支持單收件人、多收件人,適配不同場(chǎng)景)
    /**
     * 單收件人文本郵件
     * @param to 收件人郵箱地址(單個(gè))
     * @param subject 郵件主題
     * @param content 郵件純文本內(nèi)容
     */
    public void sendTextMail(String to, String subject, String content) {
        sendTextMail(new String[]{to}, subject, content);
    }
    /**
     * 多收件人文本郵件
     * @param to 收件人郵箱地址數(shù)組(多個(gè))
     * @param subject 郵件主題
     * @param content 郵件純文本內(nèi)容
     */
    public void sendTextMail(String[] to, String subject, String content) {
        try {
            // 創(chuàng)建純文本郵件實(shí)例
            SimpleMailMessage message = new SimpleMailMessage();
            message.setFrom(defaultFromMail); // 設(shè)置發(fā)件人(從配置文件讀取,避免硬編碼)
            message.setTo(to); // 設(shè)置收件人(可單個(gè)、可多個(gè))
            message.setSubject(subject); // 設(shè)置郵件主題
            message.setText(content); // 設(shè)置郵件純文本內(nèi)容
            javaMailSender.send(message); // 發(fā)送郵件
            log.info("純文本郵件發(fā)送成功,收件人:{},郵件主題:{}", String.join(",", to), subject);
        } catch (Exception e) {
            // 捕獲所有異常,記錄日志,避免影響主流程
            log.error("純文本郵件發(fā)送失敗,收件人:{},郵件主題:{},異常信息:{}", 
                    String.join(",", to), subject, e.getMessage(), e);
            // 拋出運(yùn)行時(shí)異常,由調(diào)用方根據(jù)業(yè)務(wù)需求處理(如重試、返回錯(cuò)誤信息)
            throw new RuntimeException("文本郵件發(fā)送失敗,請(qǐng)稍后重試", e);
        }
    }
    // 2. 發(fā)送 HTML 富文本郵件(重載方法,支持單收件人、多收件人,帶樣式)
    /**
     * 單收件人 HTML 郵件
     * @param to 收件人郵箱地址(單個(gè))
     * @param subject 郵件主題
     * @param htmlContent HTML 格式的郵件內(nèi)容(支持樣式、鏈接、圖片等)
     * @throws MessagingException 郵件發(fā)送相關(guān)異常(如配置錯(cuò)誤、網(wǎng)絡(luò)問題)
     */
    public void sendHtmlMail(String to, String subject, String htmlContent) throws MessagingException {
        sendHtmlMail(new String[]{to}, subject, htmlContent);
    }
    /**
     * 多收件人 HTML 郵件
     * @param to 收件人郵箱地址數(shù)組(多個(gè))
     * @param subject 郵件主題
     * @param htmlContent HTML 格式的郵件內(nèi)容(支持樣式、鏈接、圖片等)
     * @throws MessagingException 郵件發(fā)送相關(guān)異常(如配置錯(cuò)誤、網(wǎng)絡(luò)問題)
     */
    public void sendHtmlMail(String[] to, String subject, String htmlContent) throws MessagingException {
        try {
            // 創(chuàng)建復(fù)雜郵件實(shí)例(支持 HTML、附件、內(nèi)嵌圖片等)
            MimeMessage message = javaMailSender.createMimeMessage();
            // 創(chuàng)建輔助類,第一個(gè)參數(shù):郵件實(shí)例;第二個(gè)參數(shù):true 表示支持多部分內(nèi)容(如 HTML);第三個(gè)參數(shù):編碼格式
            MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");
            helper.setFrom(defaultFromMail); // 發(fā)件人
            helper.setTo(to); // 收件人(多收件人傳入數(shù)組)
            helper.setSubject(subject); // 郵件主題
            // 第二個(gè)參數(shù) true:開啟 HTML 解析,否則會(huì)將 HTML 標(biāo)簽顯示為純文本
            helper.setText(htmlContent, true);
            javaMailSender.send(message); // 發(fā)送郵件
            log.info("HTML 郵件發(fā)送成功,收件人:{},郵件主題:{}", String.join(",", to), subject);
        } catch (MessagingException e) {
            log.error("HTML 郵件發(fā)送失敗,收件人:{},郵件主題:{},異常信息:{}", 
                    String.join(",", to), subject, e.getMessage(), e);
            // 拋出異常,由調(diào)用方處理(如返回錯(cuò)誤信息、重試)
            throw e;
        }
    }
}

2. 測(cè)試接口 Controller

提供 REST 接口,可通過 Postman、瀏覽器直接調(diào)用測(cè)試,覆蓋單收件人、多收件人、文本郵件、HTML 郵件等核心場(chǎng)景;接口參數(shù)清晰,注釋詳細(xì),實(shí)際項(xiàng)目中可直接復(fù)用,或根據(jù)業(yè)務(wù)需求修改。

import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.mail.MessagingException;
/**
 * 郵件發(fā)送測(cè)試接口(實(shí)際項(xiàng)目中可整合到 Service 層,結(jié)合業(yè)務(wù)場(chǎng)景調(diào)用)
 * 接口采用 GET 請(qǐng)求,方便快速測(cè)試;正式環(huán)境可根據(jù)需求改為 POST 請(qǐng)求
 */
@RestController
@RequestMapping("/mail") // 接口統(tǒng)一前綴,便于管理
@RequiredArgsConstructor
public class MailController {
    // 注入郵件工具類,直接調(diào)用發(fā)送方法
    private final MailUtil mailUtil;
    // 測(cè)試:發(fā)送純文本郵件(單收件人,GET請(qǐng)求,方便快速測(cè)試)
    @GetMapping("/send/text")
    public String sendTextMail(
            @RequestParam String to, // 收件人郵箱地址(必填)
            @RequestParam String subject, // 郵件主題(必填)
            @RequestParam String content // 郵件純文本內(nèi)容(必填)
    ) {
        mailUtil.sendTextMail(to, subject, content);
        return "純文本郵件發(fā)送成功!";
    }
    // 測(cè)試:發(fā)送 HTML 富文本郵件(單收件人,GET請(qǐng)求,方便快速測(cè)試)
    @GetMapping("/send/html")
    public String sendHtmlMail(
            @RequestParam String to, // 收件人郵箱地址(必填)
            @RequestParam String subject // 郵件主題(必填)
    ) throws MessagingException {
        // 構(gòu)建 HTML 內(nèi)容(支持樣式、鏈接、表格等,可根據(jù)實(shí)際業(yè)務(wù)需求修改)
        // 示例:模擬用戶注冊(cè)驗(yàn)證郵件,包含驗(yàn)證碼、鏈接等核心元素
        String htmlContent = "<!DOCTYPE html>" +
                "<html lang='zh-CN'>" +
                "<head><meta charset='UTF-8'><title>" + subject + "</title></head>" +
                "<body style='font-family: \"Microsoft YaHei\", sans-serif;'>" +
                "<div style='width: 600px; margin: 0 auto; padding: 20px; border: 1px solid #eee; border-radius: 5px;'>" +
                "<h2 style='color: #1E90FF; text-align: center; margin-bottom: 20px;'>用戶注冊(cè)驗(yàn)證</h2>" +
                "<p style='font-size: 14px; line-height: 1.5;'>尊敬的用戶,您好!</p>" +
                "<p style='font-size: 14px; line-height: 1.5;'>您正在進(jìn)行注冊(cè)驗(yàn)證,本次驗(yàn)證碼為:</p>" +
                "<div style='font-size: 24px; color: #FF4500; font-weight: bold; text-align: center; margin: 15px 0;'>123456</div>" +
                "<p style='font-size: 14px; line-height: 1.5;'>驗(yàn)證碼有效期為 5 分鐘,請(qǐng)?jiān)谟行趦?nèi)完成驗(yàn)證。</p>" +
                "<p style='font-size: 14px; line-height: 1.5;'>若您未發(fā)起注冊(cè)操作,請(qǐng)忽略此郵件,感謝您的支持!</p>" +
                "<p style='font-size: 12px; color: #999; margin-transform: translateY( 30px; text-align: center;'>此為系統(tǒng)自動(dòng)發(fā)送郵件,請(qǐng)勿回復(fù)</p>" +
                "</div>" +
                "</body></html>";
        mailUtil.sendHtmlMail(to, subject, htmlContent);
        return "HTML 郵件發(fā)送成功!";
    }
    // 測(cè)試:多收件人發(fā)送純文本郵件(實(shí)際場(chǎng)景常用,如批量通知)
    @GetMapping("/send/text/batch")
    public String sendBatchTextMail(
            @RequestParam String[] to, // 多收件人郵箱地址數(shù)組(必填,格式:xxx@qq.com,xxx@163.com)
            @RequestParam String subject, // 郵件主題(必填)
            @RequestParam String content // 郵件純文本內(nèi)容(必填)
    ) {
        mailUtil.sendTextMail(to, subject, content);
        return "多收件人文本郵件發(fā)送成功!共發(fā)送 " + to.length + " 個(gè)收件人";
    }
    // 測(cè)試:多收件人發(fā)送 HTML 郵件(實(shí)際場(chǎng)景常用,如批量營銷、通知)
    @GetMapping("/send/html/batch")
    public String sendBatchHtmlMail(
            @RequestParam String[] to,
            @RequestParam String subject
    ) throws MessagingException {
        // 復(fù)用注冊(cè)驗(yàn)證 HTML 模板,可根據(jù)實(shí)際需求修改
        String htmlContent = "<!DOCTYPE html>" +
                "<html lang='zh-CN'>" +
                "<body style='font-family: \"Microsoft YaHei\", sans-serif;'>" +
                "<h2 style='color: #1E90FF; text-align: center;'>批量通知郵件</h2>" +
                "<p style='font-size: 14px;'>各位用戶,您好!本次批量通知內(nèi)容如下:</p>" +
                "<p style='font-size: 14px; color: #333;'>系統(tǒng)將于今晚 23:00 進(jìn)行升級(jí)維護(hù),維護(hù)期間可能無法正常使用,敬請(qǐng)諒解!</p>" +
                "<p style='font-size: 12px; color: #999; margin-top: 20px;'>此為系統(tǒng)批量發(fā)送郵件,請(qǐng)勿回復(fù)</p>" +
                "</body></html>";
        mailUtil.sendHtmlMail(to, subject, htmlContent);
        return "多收件人HTML郵件發(fā)送成功!共發(fā)送 " + to.length + " 個(gè)收件人";
    }
}

五、關(guān)鍵注意事項(xiàng)

  • 授權(quán)碼是核心,必須填寫正確,不可用郵箱登錄密碼替代,否則郵箱服務(wù)器會(huì)拒絕發(fā)送請(qǐng)求,導(dǎo)致發(fā)送失敗;若授權(quán)碼丟失,可重新在郵箱設(shè)置中生成。
  • HTML 郵件必須開啟 helper.setText(htmlContent, true),第二個(gè)參數(shù)為 true 才會(huì)解析 HTML 樣式,若設(shè)為 false,會(huì)將 HTML 標(biāo)簽顯示為純文本,失去樣式效果。
  • 測(cè)試時(shí)優(yōu)先使用個(gè)人郵箱(QQ/163),正式環(huán)境建議切換為企業(yè)郵箱,因?yàn)閭€(gè)人郵箱有發(fā)送頻率限制(如 QQ 郵箱單日發(fā)送上限約 50 封),企業(yè)郵箱無明顯限制,穩(wěn)定性更高。
  • 若郵件發(fā)送失敗,可開啟日志 DEBUG 級(jí)別,重點(diǎn)排查以下問題:授權(quán)碼錯(cuò)誤、SMTP 服務(wù)器地址錯(cuò)誤、端口錯(cuò)誤、網(wǎng)絡(luò)波動(dòng)、郵箱 SMTP 服務(wù)未開啟。
  • 多收件人發(fā)送時(shí),直接傳入字符串?dāng)?shù)組 String[] to 即可,無需多次調(diào)用發(fā)送方法,工具類已做好適配,避免重復(fù)創(chuàng)建連接,提升發(fā)送效率。
  • 中文亂碼問題:確保配置文件中 default-encoding: UTF-8,同時(shí) MimeMessageHelper 構(gòu)造方法中指定編碼為 UTF-8,即可避免中文亂碼。
  • 異常處理:工具類中已捕獲異常并記錄日志,實(shí)際項(xiàng)目中可根據(jù)業(yè)務(wù)需求添加重試邏輯(如失敗后重試 2-3 次),提升郵件發(fā)送成功率。

以上就是SpringBoot郵件發(fā)送之文本郵件與HTML郵件的實(shí)現(xiàn)步驟的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot發(fā)送文本郵件與HTML郵件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java如何實(shí)現(xiàn)將類文件打包為jar包

    Java如何實(shí)現(xiàn)將類文件打包為jar包

    這篇文章主要介紹了Java如何實(shí)現(xiàn)將類文件打包為jar包,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • JAVA獲取Image的三種方式

    JAVA獲取Image的三種方式

    這篇文章主要介紹了JAVA獲取Image的三種方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • MybatisPlus字段自動(dòng)填充&樂觀鎖的方法實(shí)現(xiàn)

    MybatisPlus字段自動(dòng)填充&樂觀鎖的方法實(shí)現(xiàn)

    MyBatis-Plus提供了便捷的自動(dòng)填充功能,可用于自動(dòng)處理創(chuàng)建時(shí)間、更新時(shí)間等字段,本文來介紹一下MybatisPlus字段自動(dòng)填充&樂觀鎖的方法實(shí)現(xiàn),感興趣的可以了解一下
    2025-08-08
  • Java ShutdownHook原理詳解

    Java ShutdownHook原理詳解

    這篇文章主要介紹了Java ShutdownHook原理的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-04-04
  • java 刪除文件夾中的所有內(nèi)容而不刪除文件夾本身的實(shí)例

    java 刪除文件夾中的所有內(nèi)容而不刪除文件夾本身的實(shí)例

    下面小編就為大家?guī)硪黄猨ava 刪除文件夾中的所有內(nèi)容而不刪除文件夾本身的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-12-12
  • idea報(bào)錯(cuò)java:?非法字符:?‘\ufeff‘的解決步驟以及說明

    idea報(bào)錯(cuò)java:?非法字符:?‘\ufeff‘的解決步驟以及說明

    這篇文章主要介紹了idea報(bào)錯(cuò)java:非法字符:\ufeff的解決步驟以及說明,文章詳細(xì)解釋了為什么在Java中會(huì)出現(xiàn)\ufeff錯(cuò)誤,這是由于BOM字符被認(rèn)為是非法字符導(dǎo)致的,通過示例代碼將解決的過程介紹的非常詳細(xì),需要的朋友可以參考下
    2025-05-05
  • Java 操作Properties配置文件詳解

    Java 操作Properties配置文件詳解

    這篇文章主要介紹了Java 操作Properties配置文件詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • jeefast和Mybatis實(shí)現(xiàn)三級(jí)聯(lián)動(dòng)的示例代碼

    jeefast和Mybatis實(shí)現(xiàn)三級(jí)聯(lián)動(dòng)的示例代碼

    這篇文章主要介紹了jeefast和Mybatis實(shí)現(xiàn)三級(jí)聯(lián)動(dòng)的示例代碼,代碼簡單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • java自定義切面增強(qiáng)方式(關(guān)于自定義注解aop)

    java自定義切面增強(qiáng)方式(關(guān)于自定義注解aop)

    這篇文章主要介紹了java自定義切面增強(qiáng)方式(關(guān)于自定義注解aop),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 淺談java中math類中三種取整函數(shù)的區(qū)別

    淺談java中math類中三種取整函數(shù)的區(qū)別

    下面小編就為大家?guī)硪黄獪\談java中math類中三種取整函數(shù)的區(qū)別。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-11-11

最新評(píng)論

富裕县| 乌拉特中旗| 乌兰察布市| 宝坻区| 来凤县| 民丰县| 黎城县| 化州市| 桦甸市| 南川市| 梁河县| 博爱县| 山东| 江陵县| 松溪县| 宿松县| 双鸭山市| 陈巴尔虎旗| 太白县| 玉树县| 梓潼县| 永善县| 安化县| 若尔盖县| 宁远县| 阿合奇县| 大石桥市| 仲巴县| 遂宁市| 宁城县| 九江县| 中牟县| 江西省| 柳州市| 柞水县| 依兰县| 时尚| 柳江县| 腾冲县| 聂拉木县| 兴国县|