在StoredetailAction中加入方法:
(6)页面代码
1)添加js/storealert.js
2)添加storealert.html文件
3)运行结果
http://localhost:8080/erp/storealert.html
1、需求分析
实现发送邮件预警功能,根据相关人员进行采购,点击“发送警报邮件”按钮即可发送库存报警
如果存在报警商品并成功发送 ,提示发送成功
如果不存在报警商品,提示没有库存报警商品
2、JavaMail介绍
JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。JavaMail API是Sun公司为方便Java开发人员在应用程序中实现邮件发送和接收功能而提供的一套标准开发包,它支持一些常用的邮件协议,如:SMTP、POP3、IMAP。开发人员使用JavaMail API编写邮件处理软件时,无须考虑邮件协议底层的实现细节,只要调用JavaMail开发包中相应的API类就可以了。
使用 JavaMail,我们可以实现类似 OutLook、FoxMail 的软件
Spring的javaMailSender对JavaMail进行封装,简化了开发,告别繁琐的API
3、ERP中实现发送预警邮件
(1)添加依赖
在父工程的pom.xml中添加java mail的依赖
(2)编写发送邮件的工具类
在业务逻辑层当中创建MailUtil
(3)编写spring配置文件
创建applicationContext_mail.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns=“http://www.springframework.org/schema/beans”
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns:context=“http://www.springframework.org/schema/context”
xmlns:aop=“http://www.springframework.org/schema/aop” xmlns:tx=“http://www.springframework.org/schema/tx”
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
">
true
true
(4)编写业务逻辑类
给IStoredetailBiz和StoredetailBiz添加sendStoreAlertMail方法
IStoredetailBiz
StoredetailBiz
private MailUtil mailUtil;
public void setMailUtil(MailUtil mailUtil) {
this.mailUtil = mailUtil;
}
private String toAddress;// 收件箱
private String subject;// 主题
private String text;// 正文
public void setToAddress(String toAddress) {
this.toAddress = toAddress;
}
public void setSubject(String subject) {
this.subject = subject;
}
public void setText(String text) {
this.text = text;
}
/**
-
发送库存预警邮件
-
@throws MessagingException
*/
public void sendStoreAlertMail() throws MessagingException {
// 得到库存预警列表
List storeAlertList = storedetailDao.getStorealertList();
if (storeAlertList.size() > 0) {
mailUtil.sendMail(toAddress,
subject.replace(“[time]”, new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”).format(new Date())),
text.replace(“[count]”, String.valueOf(storeAlertList.size())));
} else {
throw new ErpException(“没有库存预警信息”);
}
}
(5)修改applicationContext_biz.xml
storedeatilBiz节点,添加
(6)编写action代码
修改StoredetailAction,添加代码
(7)编写js代码
修改storealert.js
4、Quartz定时发送预警邮件
(1)需求以及实现思路
定时查询库存预警信息,一旦存在库存预警的商品,侧发送邮件通知相关工作人员
(2)Quart框架
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它完全由 Java 写成,并设计用于 J2SE 和 J2EE 应用中。
Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。
它提供了巨大的灵活性而不牺牲简单性。
你能够用它来为执行一个作业而创建简单的或复杂的调度。
1)Job
表示一个任务(工作),要执行的具体内容。
2)JobDetail JobDetail
表示一个具体的可执行的调度程序,Job 是这个可执行程调度程序所要 执行的内容,另外
JobDetail 还包含了这个任务调度的方案和策略。
告诉调度容器,将来执行哪个类(job)的哪个方法
3)Trigger
是一个类,代表一个调度参数的配置,描述触发Job执行的时间触发规则。
一个Job可以对应多个Trigger,但一个Trigger只能对应一个Job
4)Scheduler 代表一个调度容器,一个调度容器中可以注册多个 JobDetail 和Trigger。
Scheduler可以将Trigger绑定到某一JobDetail中,这样当Trigger触发时,对应的Job就被执行。
Note: 当JobDetail和Trigger在scheduler容器上注册后,形成了装配好的作业(JobDetail和Trigger所组成的一对儿),就可以伴随容器启动而调度执行了。
5、代码实现
(1)添加quartz依赖
打开父工程的pom.xml,添加quartz依赖:
(2)创建任务类
在业务逻辑层中新建MailJob类,包名为com.itzheng.erp.job
(3)创建applicationContext_job.xml注入
<?xml version="1.0" encoding="UTF-8"?><beans xmlns=“http://www.springframework.org/schema/beans”
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
">