tags: Java基础
Java定时任务调度 为什么要使用定时任务调度工具?
在最近的开发中,想开发一个“个人备忘录”的功能,实际上就是用户在指定某个时间点后,就在那个时间点发送邮件提醒用户去做xxx事。
既然是这样的一个功能,我就想到了定时任务调度...
之前跟着视频做的项目也用到了定时任务调度工具:Quartz。当时记录的博文在这纳税服务系统章节
显然的,只是简单的使用了一下Quartz,并不能完成我所说的功能。后来我又记得在慕课网上有相关的Quartz教程。
于是我就去学习了一番,视频教程:https://www.imooc.com/learn/841和https://www.imooc.com/learn/846
学习记录把慕课网的视频也都看完了,现在做一个学习的记录....
Timer首先,得知道:为什么有JDK的Timer定时任务调度工具,还需要用到Quartz??
- Timer仅有一个线程来进行调度我们的任务,对于并发性而言,它是无法处理的!
- 如果使用Timer时抛出了异常,那么我们设置的任务将全部作废
当然了, 如果仅仅是简单使用任务调度工具、并没有什么并发性的话,那么Timer是可以完成任务的。
在视频中还介绍了Timer的一些API说明:
- schedule和scheduleAtFirstRate的对比:
可以总结出:scheduleAtFirstRate是有一定的并发性而言的(相对来说)
QuartzQuartz的三大要素:
- 任务
- 触发器
- 调度器
针对三大要素相关API说明:
任务:需要做怎么样的事情
- 可以通过Map来传递所需要的参数!
Trigger:该任务何时被触发
- 简单的触发器
- 复杂的触发器
Schedule:
如果对Cron表达式不是特别清楚,还可以在网上生成!
Quartz与Sprping整合:
Spirng环境下使用Quartz时读取的配置文件:
源码:https://img.mukewang.com/down/5950cae200010ca100000000.rar
Java生成二维码今天在慕课网上看到了Java生成二维码的教程:https://www.imooc.com/learn/531
在日常生活中二维码就用得比较多了,实际上对他是不怎么了解的。通过这个教程还是能够学到不少的东西的。
二维码是由一维码发展而来的,最典型的一维码就是我们平时去商场中看到商品包装的条形码,这就是典型的一维码。
而二维码的数据存储量信息又比一维码大得多,并且有很好的纠正的功能(即使二维码中有部分的信息不完整,还是能够解析得到二维码的数据)
该课程主要讲解了生成二维码的方式有三种:
- zxing API
- qrcode
- juqeryqrcode
当然了,肯定是jquery的方式来生成二维码是比较简单的。但是如果想定制二维码的样式、形状的话。那么使用Java的方式来生成是比较灵活的。(比如:在二维码中间放上logo)
下载生成二维码的资源jar包:https://img.mukewang.com/down/5799a5440001040300000000.rar
使用Jquery的方式生成二维码的博文:http://suflow.iteye.com/blog/1687396
使用zxing生成二维码的博客:http://guopengli.cn/index.php/2017/10/05/53.html
学了课程才知道原来二维码能够干很多东西(二维码能够直接跳转到页面上、扫描二维码下载应用、扫描二维码能够解析生名片):https://zh.wikipedia.org/wiki/VCard
有的时候我们在上传图片时,不希望展示的图片大小和上传的图片大小相同时,我们就需要把图片进行压缩生一定的像素了。
还有就是为图片生成水印..
生成水印源码(主要就是通过几个工具类来进行操作):
https://github.com/HongZhilin/watermark
生成缩略图博文和源码:
博文:http://blog.csdn.net/qq_31179919/article/details/53336293
源码:https://github.com/Amant-huangqi/Thumbnails
微信授权登陆基础知识昨天在慕课网看见了微信授权登陆的教程,之前就想在自己的应用中加入微信登陆这么一个小功能的了。刚好看见了教程,于是就进去学了一会。
教程地址:https://www.imooc.com/learn/713
微信授权分为两种:
- 微信公众平台
- 微信开放平台
这两种有什么区别呢????
- 微信开放平台多用于网站PC端,很不好的是,这个是需要企业认证的。并且需要钱的【因此,我的javaWeb应用就不能添加微信登陆这个功能了...】
- 微信公众平台是使用微信公众号的基础上进行开发的,只要有一个已认证的公众号就行了。一般用于手机登陆。
微信授权登陆的方式分为两种:
- 1.直接使用微信所提供的数据就作为账号
- 2.微信登陆后与已有的账户体系进行绑定
显然,是第一种比较方便,是小型应用完全就可以使用第一种。而如果我们的应用已有自己的账户体系了,为了更好地管理。应该将微信授权登陆的信息与应用的账户体系来进行关联起来。
实现起来也特别方便,在微信授权登陆以后,使用微信的API获取得到openId。用openId去数据库查询是否与自己应用的账户体系已绑定了,如果没有绑定就回到登陆页面让用户进行绑定。如果已绑定了,那么就可以直接登陆了。
开发时值得注意的地方1、组装授权地址的时候需要注意参数的顺序和api中的是否保持一致
2、回调地址必须是公网能访问到的
3、回调地址域名的设置【这个是在微信网页上指定的】
微信公众号与微信开放平台关联微信公众号登陆时获取得到的openId和微信开放平台得到的openId,他俩是不一致的!!!
也就是说:如果使用了微信公众号登陆某个应用,并与该应用的账户体系进行了绑定。使用微信公众平台登陆,还是会提示需要绑定!因为在之前是依靠openId来进行判断该用户是否与应用账户体系进行了绑定。
想要微信公众号与微信开放平台关联起来,那么就要使用unid来进行操作了。具体的还是查看视频呗。这里就不赘述了。
要用到的时候再回来专研吧...现在知道有这样的功能就好了