为了账号安全,请及时绑定邮箱和手机立即绑定
  • 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
提交
取消
课程须知
学习中需要用到这些工具: —eclipse —redis 你需要有这些基础: —Java 基础 —Spring —Spring MVC
老师告诉你能学到什么?
了解springboot如何从零搭开始搭建一个工程 springboot系统架构体系 springboot与各个技术点的整合

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!