-
00
查看全部 -
測試查看全部
-
屬性文件配置tomcat的相關配置
查看全部 -
屬性文件配置
查看全部 -
這段代碼用于讀取屬性文件的內容,必須配置
查看全部 -
SpringBoot熱部署屬性配置文件
查看全部 -
SpringBoot實現熱部署
查看全部 -
增刪改 用REQUIRED? 查詢采用Support
查看全部 -
注解:
@RestController:就相當于@Controller+@ResponseBody的作用
一個注解解決了兩個注解的作用,又節(jié)約了資源哈哈查看全部 -
使用官方地址生成項目 https://start.spring.io
查看全部 -
springboot定時任務
import?org.slf4j.Logger; import?org.slf4j.LoggerFactory; import?org.springframework.scheduling.annotation.Scheduled; import?org.springframework.stereotype.Component; import?java.util.Date; /** ?*?定時任務 ?*/ @Component public?class?TimeSchedule?{ ???? ????private?static?final?Logger?logger?=?LoggerFactory.getLogger(TimeSchedule.class); ????@Scheduled(fixedRate?=?60000) ????private?void?time()?{ ????????logger.info("這是定時任務的時間:{}?一分鐘一次",?new?Date()); ????} }
查看全部 -
import?org.springframework.scheduling.annotation.Async; import?org.springframework.scheduling.annotation.AsyncResult; import?org.springframework.stereotype.Component; import?java.util.concurrent.Future; @Component public?class?MyAsync?{ ????@Async ????public?Future<Boolean>?task1()?throws?InterruptedException?{ ????????long?currentTimeMillis?=?System.currentTimeMillis(); ????????Thread.sleep(5000); ????????long?currentTimeMillis1?=?System.currentTimeMillis(); ????????System.out.println("task1任務耗時:"?+?(currentTimeMillis1?-?currentTimeMillis)?+?"ms"); ????????return?new?AsyncResult<>(true); ????} ????@Async ????public?Future<Boolean>?task2()?throws?InterruptedException?{ ????????long?currentTimeMillis?=?System.currentTimeMillis(); ????????Thread.sleep(2000); ????????long?currentTimeMillis1?=?System.currentTimeMillis(); ????????System.out.println("task2任務耗時:"?+?(currentTimeMillis1?-?currentTimeMillis)?+?"ms"); ????????return?new?AsyncResult<>(true); ????} ????@Async ????public?Future<Boolean>?task3()?throws?InterruptedException?{ ????????long?currentTimeMillis?=?System.currentTimeMillis(); ????????Thread.sleep(3000); ????????long?currentTimeMillis1?=?System.currentTimeMillis(); ????????System.out.println("task3任務耗時:"?+?(currentTimeMillis1?-?currentTimeMillis)?+?"ms"); ????????return?new?AsyncResult<>(true); ????} }
@Resource private?MyAsync?myAsync;//異步執(zhí)行任務使用注入方式調用 /** ?*?異步任務測試 ?* ?*?@return?花費時間 ?*?@throws?InterruptedException?線程sleep來模擬任務花費時間 ?*/ @ResponseBody @RequestMapping(value?=?"myAsync") public?Result?myAsync()?throws?InterruptedException?{ ????long?currentTimeMillis?=?System.currentTimeMillis(); ????Future<Boolean>?a1?=?myAsync.task1(); ????Future<Boolean>?a2?=?myAsync.task2(); ????Future<Boolean>?a3?=?myAsync.task3(); ????waitingAsync(a1,?a2,?a3); ????long?use?=?System.currentTimeMillis()?-?currentTimeMillis; ????logger.info("task任務總耗時:{}ms",?use); ????return?Result.ok(use); } /** ?*?等待異步全部完成 ?* ?*?@param?futures?異步執(zhí)行等待結果 ?*/ @SafeVarargs//注解表名可變個數參數的類型是安全的,否則會警告 private?static?void?waitingAsync(Future<Boolean>...?futures)?{ ????boolean?loop?=?true; ????while?(loop)?{ ????????loop?=?false; ????????for?(Future<Boolean>?future?:?futures)?{ ????????????if?(future.isCancelled())?continue;//跳過被取消了的任務 ????????????if?(!future.isDone())?loop?=?true;//如果沒完成則繼續(xù)等待 ????????} ????} }
查看全部 -
標記查看全部
-
熱部署
查看全部 -
事務的配置
查看全部
舉報
0/150
提交
取消