码迷,mamicode.com
首页 > 编程语言 > 详细

springboot学习入门简易版七---springboot2.0使用@Async异步执行方法(17)

时间:2019-05-12 15:43:46      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:autowire   factor   res   .com   targe   img   页面   str   image   

1启动类开启异步调用注解

@SpringBootApplication
@EnableAsync //开启异步调用
public class StartApplication {

不开启则异步调用无效

 2编写异步调用方法

@RestController
public class AsyncController {
    private final static Logger logger=LoggerFactory.getLogger(WebLogAspect.class);
    @Autowired
    private AsyncService asyncService;
    
    @RequestMapping("/testAsync")
    public String testAsync() {
        logger.info("1");
        String result=asyncService.asynTest();
        logger.info("4");
        return result;
    }
}

 

@Service
public class AsyncService {
    private final static Logger logger=LoggerFactory.getLogger(WebLogAspect.class);
    
    @Async  //相当于重新开辟单独线程执行该方法
    public String asynTest() {
        logger.info("2");
        try {
            Thread.sleep(5000);
        }catch(Exception e) {
            
        }
        logger.info("3");
        return "success";
    }
}

3 访问:http://localhost:8080/testAsync

页面显示空,后台日志:

技术图片

说明异步调用成功,未按顺序执行。

原理:使用aop技术在运行时创建一个单独线程执行

 

github代码:https://github.com/cslj2013/springboot2.0_log_aop.git

 

springboot学习入门简易版七---springboot2.0使用@Async异步执行方法(17)

标签:autowire   factor   res   .com   targe   img   页面   str   image   

原文地址:https://www.cnblogs.com/cslj2013/p/10852321.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!