BOS13——quartz定时任务,Highcharts前端图表的使用

1、quartz定时任务(定时发送邮件示例)

第一步:创建maven工程,导入springquartzJavaMail的依赖

<!--引入Quertz-->
<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.2.3</version>
</dependency>
<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz-jobs</artifactId>
    <version>2.2.3</version>
</dependency>

<!--java mail-->
<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4</version>
</dependency>

第二步:提供一个作业类,用于为系统管理员发送邮件

/**
 * 发送邮件的作业
 */
public class MailJob {
	@Resource
	private IWorkbillDao workbillDao;
	private String username;//发件人的邮箱账号
	private String password;//密码
	private String smtpServer;//服务器
	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public void execute() {
		System.out.println("要发邮件了。。。" + new Date());
		try {
			//查询工单类型为新单的所有工单
			List<Workbill> list = workbillDao.findAll();
			if(null != list && list.size() > 0){
				final Properties mailProps = new Properties();
				mailProps.put("mail.smtp.host", this.getSmtpServer());
				mailProps.put("mail.smtp.auth", "true");
				mailProps.put("mail.username", this.getUsername());
				mailProps.put("mail.password", this.getPassword());

				// 构建授权信息,用于进行SMTP进行身份验证
				Authenticator authenticator = new Authenticator() {
					protected PasswordAuthentication getPasswordAuthentication() {
						// 用户名、密码
						String userName = mailProps.getProperty("mail.username");
						String password = mailProps.getProperty("mail.password");
						return new PasswordAuthentication(userName, password);
					}
				};
				// 使用环境属性和授权信息,创建邮件会话
				Session mailSession = Session.getInstance(mailProps, authenticator);
				for(Workbill workbill : list){
					// 创建邮件消息
					MimeMessage message = new MimeMessage(mailSession);
					// 设置发件人
					InternetAddress from = new InternetAddress(mailProps.getProperty("mail.username"));
					message.setFrom(from);
					// 设置收件人
					InternetAddress to = new InternetAddress("test@itcast.cn");
					message.setRecipient(RecipientType.TO, to);
					// 设置邮件标题
					message.setSubject("系统邮件:新单通知");
					// 设置邮件的内容体
					message.setContent(workbill.toString(), "text/html;charset=UTF-8");
					// 发送邮件
					Transport.send(message);
				}
			}
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

	public String getSmtpServer() {
		return smtpServer;
	}

	public void setSmtpServer(String smtpServer) {
		this.smtpServer = smtpServer;
	}
}

第三步:在spring配置文件中配置

<!-- *************************定时任务+邮件服务************************* -->
<!-- 注册自定义作业类 -->
<bean id="myJob" class="cn.x5456.bos.jobs.MailJob">
    <property name="username" value="itcast_server@126.com"/>
    <property name="password" value="147963qP"/>
    <property name="smtpServer" value="smtp.126.com"/>
</bean>

<!-- 配置JobDetail -->
<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    <!-- 注入目标对象 -->
    <property name="targetObject" ref="myJob"/>
    <!-- 注入目标方法 -->
    <property name="targetMethod" value="execute"/>
</bean>

<!-- 配置触发器 -->
<bean id="myTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
    <!-- 注入任务详情对象 -->
    <property name="jobDetail" ref="jobDetail"/>
    <!-- 注入cron表达式,通过这个表达式指定触发的时间点 -->
    <property name="cronExpression">
        <value>0/5 * * * * ?</value>
    </property>
</bean>

<!-- 配置调度工厂 -->
<bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <!-- 注入触发器 -->
    <property name="triggers">
        <list>
            <ref bean="myTrigger"/>
        </list>
    </property>
</bean>

在项目运行时,自动发送邮件

2、Highcharts的使用

Highcharts 是一个用纯JavaScript编写的一个图表库, 能够很简单便捷的在web网站或是web应用程序添加有交互性的图表,并且免费提供给个人学习、个人网站和非商业用途使用。HighCharts支持的图表类型有曲线图、区域图、柱状图、饼状图、散状点图和综合图表。

第一步:将Highcharts相关资源文件复制到项目中

第二步:在页面中引入相关js文件

<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.8.3.js"></script>

<script src="${pageContext.request.contextPath }/js/highcharts/highcharts.js"></script>

<script src="${pageContext.request.contextPath }/js/highcharts/modules/exporting.js"></script>

第三步:在页面中提供一个div,并指定id属性 

第四步:调用Highcharts提供的方法,动态创建图表

3、在BOS项目中展示区域分区分布图

原文地址:https://www.cnblogs.com/x54256/p/8616295.html