java学习笔记——众筹项目练习——文件上传进度条、quartz石英调度

                                            文件上传进度条

  还记得在前面的文章我们实现的功能当中有文件上传的功能吗?今天我们来为文件上传美化一下,添加一个文件上传的进度条来实时显示文件上传的进度。

说干就干!实现方法很简单,也就不使用任何插件了,我们的文件上传是使用ajax实现的。那我们就在ajax中获取到文件上传的实时信息,并这些实时信息显示在Bootstrap样式库中的进度条中即可。

获取ajax上传文件时,实时的上传进度信息。

利用ajax中的xhr字段参数来实现进度条功能。

在Bootstrap样式库中找到进度条样式拷贝到我们的代码中。

将进度条样式作为一个模态框放在我们的页面中,在需要时显示和隐藏。

完成,简单吧!我们来试一试!

启动后台manager系统并登录后进入广告管理页面。

点击新增按钮添加广告图片,选择好图片后点击确定,上传图片。

因为我们的进度条在大的百分之百后会隐藏掉,速度很快,不容易截图,所以我在隐藏掉之前放置了一个alert来阻塞弹出,只要我们不关闭这个alert,进度条就会显示。

关闭alert,因为进度条已经达到了百分之百,进度条的模态框就会隐藏掉。

ok,验证完毕。

 

                                                 quartz石英调度

接下来我们了解一下quartz石英调度,石英调度通常用于定时任务。

石英调度:

     quartz:-石英;定时任务;

     是由原生java完成();

 

quartz:非常方便的进行定时任务调度;

1、核心包

2、整合包;

     Spring框架内置支持的,核心并没有导入,我们需要导入;

     

     SpringMVC支持的第三方的框架集成,第三方功能的集成;

     (复杂功能)

     

3、Spring文档,查看任务调度的使用;

指定哪个对象的哪个方法需要何时运行即可;

1.1)、配一个jobDetail:指定要运行哪个对象的哪个方法;

<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

    <property name="targetObject" ref="exampleBusinessObject" />

    <property name="targetMethod" value="doIt" /></bean>

1.2)、配一个触发器,指定何时完成

 

<!-- 2、配置触发器:指定何时触发这个方法 -->

    <!-- 使用cron表达式指定触发时间 -->

    <!-- 0 0 6 * * ?;6到7位以空格隔开

        秒  分  时  日  月  周 年

        0 0 6 * * ? 可以省略;

          0 0-5 6 * * ?

0 1,3,5,7,9 6 * * ?

          

          

 

        5/5:  *任何秒 / 5步长,每5秒做一次这个任务   第5秒开始,每隔5秒触发一次;5,10,15,20

     

     -->

    <bean id="cronTrigger"

        class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">

        <property name="jobDetail" ref="exampleJob" />

        <!-- run every morning at 6 AM -->

        <property name="cronExpression" value="*/5 * * * * ?" />

    </bean>

1.3)、配置Scheduler使用触发器进行任务调度

 

<!-- 3、配置任务调度框架使用那些触发器,触发此次任务; SchedulerFactoryBean ===== Scheduler Scheduler:调度; -->

    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

        <property name="triggers">

            <list>

                <!-- 添加这个任务要使用的多个触发器,同时生效 -->

                <!-- 指定使用哪些触发器触发任务 -->

                <ref bean="cronTrigger" />

            </list>

        </property>

    </bean>

2)、cron表达式

     1)、能出现的通配符

          , - * /:出现在

(1)*:表示匹配该域的任意值,假如在Minutes域使用*, 即表示每分钟都会触发事件。

(2)?:只能用在DayofMonth和DayofWeek两个域。它也匹配域的任意值,但实际不会。因为DayofMonth和 DayofWeek会相互影响。例如想在每月的20日触发调度,不管20日到底是星期几,则只能使用如下写法: 13 13 15 20 * ?, 其中最后一位只能用?,而不能使用*,如果使用*表示不管星期几都会触发,实际上并不是这样。 

(3)-:表示范围,例如在Minutes域使用5-20,表示从5分到20分钟每分钟触发一次 

(4)/:表示起始时间开始触发,然后每隔固定时间触发一次,例如在Minutes域使用5/20,则意味着5分钟触发一次,而25,45等分别触发一次. 

(5),:表示列出枚举值值。例如:在Minutes域使用5,20,则意味着在5和20分每分钟触发一次。 

 

添加石英调度依赖。

 

新建HelloQuartzService类。

 

新建spring-quartz.xml配置文件

运行就可以在控制台看见打印结果啦!!!

简单吧!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值