春天定时任务
导依赖
xml <!-https://mvnrepository.com/artifact/org.quartz-scheduler/quartz-> <依赖> < groupId > org.quartz-scheduler </ groupId> < artifactId >石英</ artifactId> <版本> 2.2 .3 </版本> </替代> `
配置定时任务类
的@Service公共类ExampleJob中中{公共无效你好(){系统出来.println(“定时任务触发== == == == == == >”);}}
配置定时任务
<bean id =“ jobDetail” class =“ org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean”> <属性名称=“ targetObject” ref =“ exampleJob” /> <属性名称= “ targetMethod ”值= “ hello ” /> < / bean > <!-配置重定向,指定何时触发-> < bean id = “ cronTrigger ” class = “ org.springframework.scheduling.quartz.CronTriggerFactoryBean ” > <属性名称= “jobDetail “
ref="jobDetail" />
<!-- run every morning at 6 AM -->
<property name="cronExpression" value="*/5 * * * * ?" />
</bean>
<!--配置定时任务调用哪一个触发器 -->
<bean
class= “ org.springframework.scheduling.quartz.SchedulerFactoryBean ” > <属性名= “触发器” > <列表> < REF 豆= “ cronTrigger ” /> </列表> </属性> </豆> </豆> ` ``
cron表达式使用
每隔5秒执行一次:* / 5 * * * *?每隔1分钟执行一次:0 * / 1 * * *?每天23点执行一次:0 0 23 * *?每天凌晨1点执行一次:0 0 1 * *?每月1号凌晨1点执行一次:0 0 1 1 *?每月最后一天23点执行一次:0 0 23 L ?每周星期天凌晨1点实行一次:0 0 1个 L 在26分,29分,33分执行一次:0 26,29,33 * * *??每天的0点,13点,18点,21点都执行一次:0 0 0,13,18,21 * *? `
参考
[ https://docs.spring.io/spring/docs/4.0.0.RELEASE/spring-framework-reference/htmlsingle/#scheduling-quartz ](https://docs.spring.io/spring/docs/4.0 .0.RELEASE / spring-framework-reference / htmlsingle /#scheduling-quartz)
文件上传进度条
ajax异步提交表单$(“#subBtn”)。on('click',function(){return false}
是js对象的机制
<button type =“ submit” id ='subBtn'class =“ btn btn-default”>提交</ button>
点击按钮直接提交是浏览器的机制
文件上传
表单直接提交action ='$ {ctp} / member / upload'method ='post'enctype =“ multipart / form-data”
的HTML <形式行动=’$ {CTP} /构件/上传’方法='后’ENCTYPE =“多部分/格式数据”> <DIV类=“形式的基团”> <输入类型=“文件” class =“ form-control” id =“文件”名称=“文件”> </ div> <div class =“ progress”> <div class =“ progress-bar”角色=“ progressbar” aria-valuenow = “ 60” aria-valuemin =“ 0” aria-valuemax =“ 100”样式=宽度:60%;“> 60%</ div> </ div> <button type =“提交” id ='subBtn’类=“ btn btn-default”>提交</ button> </ form>
ajax提交`type: “ post”,contentType:false,processData:false`进度条:获取`myXhr = $ .ajaxSettings.xhr()`对象并返回
html <div class =“ form-group ”> <输入类型=“ file” class =“表单控制” id =“ file“名称=‘文件’
> </ div > < div class = “ progress ” style =' display : none ; ' > < div class = “ progress-bar ”角色= “ progressbar ” aria-valuenow = “ 0 ” aria-valuemin = “ 0 ” aria-valuemax = “ 100 ” style = width :0%; ”
>0%</div>
</div>
<button type="submit" id='subBtn' class="btn btn-default">Submit</button>
</form>
<script type="text/javascript">
$("#subBtn").on('click', function() {
var fd = new FormData($("#submitForm")[0]);
$.ajax({
url : "${ctp}/member/upload",
data : fd,
type : "post",
contentType : false,
processData : false,
//获取ajaxSettings中的xhr对象,为它的upload属性绑定progress事件的处理函数
xhr : function() {
myXhr = $.ajaxSettings.xhr()
//检查upload属性是否存在
if (myXhr.upload) {
//绑定progress事件的回调函数
myXhr.upload.addEventListener('progress',
progressHandlingFunction, false)
}
//xhr对象返回给jQuery使用
return myXhr;
},
success : function(result) {
console.日志(“结果===========>” ,结果)} , 错误:函数( e ){ 控制台。log ('e =========>' , e )} } )返回false } )var progressHandlingFunction = 函数( e ){ var curr = e 。已加载的var total = e 。全 过程
= CURR /总* 100
控制台。log('上传进度============>',处理)$('.progress')。attr('style',“显示:显示; ”)KaTeX解析错误:预期为'EOF',在位置1为'(')。(att'.progress-bar'...('.progress-bar')。attr('style','width:')}} </脚本> '' **图片预览**
`js $(“#ad_file_input”)。on(“ change”,function(event){$(this).empty()) KaTeX解析错误:预期为“ EOF”,在位置1为“(”): (̲this).parent('。… .each(fileList,function(index,item)){//创建一个临时的URL地址imgURL =URL。createObjectURL(item)log('this == == == === >',this)log('item ===========”,item)$('#ad_file_input')。parent(“。form-group”)。next(“。form-group”找到(追加(“ <img src ='“ + imgURL +”'style ='width:200px; 高度:220px;'/>“)附加('
'++ item.name +'
')})}}}}}}“”“”“”“''''