-
00
查看全部 -
测试查看全部
-
属性文件配置tomcat的相关配置
查看全部 -
属性文件配置
查看全部 -
这段代码用于读取属性文件的内容,必须配置
查看全部 -
SpringBoot热部署属性配置文件
查看全部 -
SpringBoot实现热部署
查看全部 -
增删改 用REQUIRED 查询采用Support
查看全部 -
注解:
@RestController:就相当于@Controller+@ResponseBody的作用
一个注解解决了两个注解的作用,又节约了资源哈哈查看全部 -
使用官方地址生成项目 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;//异步执行任务使用注入方式调用 /** * 异步任务测试 * * @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 异步执行等待结果 */ @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;//如果没完成则继续等待 } } }
查看全部 -
标记查看全部
-
热部署
查看全部 -
事务的配置
查看全部
举报
0/150
提交
取消