⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sendorderconfirmationemailadvice.java

📁 这是一个网上购物店的源码
💻 JAVA
字号:
package org.digitstore.domain.logic;

import java.lang.reflect.Method;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.digitstore.domain.Account;
import org.digitstore.domain.Order;
import org.digitstore.service.AccountManager;

import org.springframework.aop.AfterReturningAdvice;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.mail.MailException;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;

public class SendOrderConfirmationEmailAdvice implements AfterReturningAdvice,
        InitializingBean {

    private static final String DEFAULT_MAIL_FROM = "ordercenter@digitstore.com";

    private static final String DEFAULT_SUBJECT = "Thank you for your order!";

    private final Log logger = LogFactory.getLog(getClass());

    private MailSender mailSender;

    private String mailFrom = DEFAULT_MAIL_FROM;

    private String subject = DEFAULT_SUBJECT;

    public void setMailSender(MailSender mailSender) {
        this.mailSender = mailSender;
    }

    public void setMailFrom(String mailFrom) {
        this.mailFrom = mailFrom;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public void afterPropertiesSet() throws Exception {
        if (this.mailSender == null) {
            throw new IllegalStateException("mailSender is required");
        }
    }

    public void afterReturning(Object returnValue, Method m, Object[] args,
            Object target) throws Throwable {
        Order order = (Order) args[0];
        Account account = ((AccountManager) target).getAccount(order
                .getUsername());

        // don't do anything if email address is not set
        if (account.getEmail() == null || account.getEmail().length() == 0) {
            return;
        }

        StringBuffer text = new StringBuffer();
        text.append("Dear ").append(account.getFirstName()).append(' ').append(
                account.getLastName());
        text
                .append(", thank your for your order from DigitStore. Please note that your order number is ");
        text.append(order.getOrderId());

        SimpleMailMessage mailMessage = new SimpleMailMessage();
        mailMessage.setTo(account.getEmail());
        mailMessage.setFrom(this.mailFrom);
        mailMessage.setSubject(this.subject);
        mailMessage.setText(text.toString());
        try {
            this.mailSender.send(mailMessage);
        } catch (MailException ex) {
            // just log it and go on
            logger.warn("An exception occured when trying to send email", ex);
        }
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -