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配置文件

運行就可以在控制檯看見打印結果啦!!!

簡單吧!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章