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

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

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

时间: 2024-11-09 20:41:10

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

springboot学习入门简易版三---springboot2.0启动方式

2.4使用@componentscan方式启动 2.4.1 @EnableAutoConfiguration 默认只扫描当前类 @EnableAutoConfiguration 默认只扫描当前类,如果再新建一个indexcontroller类,将无法被扫描. 新建indexcontroller类: /** * 测试index类 * @author admin * */ @RestController public class IndexController { @RequestMapping("

springboot学习入门简易版八---springboot2.0多环境配置、整合mybatis mysql8+(19-20)

2.11 SpringBoot多环境配置(19)  application.properties中配置 Spring.profiles.active=prd 配置环境: Application-dev.properties 开发环境 Application-test.properties 测试环境 Application-uat.properties 用户测试环境 Application-prd.properties 生产环境 2.12 SpringBoot整合mybatis(20) 注意:使用

springboot学习入门简易版五---springboot2.0整合jsp(11)

springboot对jsp支持不友好,内部tomcat对jsp不支持,需要使用外部tomcat,且必须打包为war包. 1 创建maven项目 注意:必须为war类型,否则找不到页面. 且不要把jsp页面存放在resources(原因:可能被别人访问,其次不在classes类路径中),因此,一般自行创建目录存放(一般/WEB-INF/下.  2 pom文件 <packaging>war</packaging> <!-- 注意为war包!!! --> <!-- s

springboot学习入门简易版一---springboot2.0介绍

1.1为什么用springboot(2) 传统项目,整合ssm或ssh,配置文件,jar冲突,整合麻烦.Tomcat容器加载web.xml配置内容 springboot完全采用注解化(使用注解方式启动springmvc,没有web.xml,springmvc3后采用注解方式启动springmvc),简化配置,快速整合第三方框架(maven依赖继承),内嵌http服务器(tomcat,jetty,通过java创建tomcat),构建微服务应用.最终以java应用程序进行执行. 1.2Springb

springboot学习入门简易版四---springboot2.0静态资源访问及整合freemarker视图层

2.4.4 SpringBoot静态资源访问(9) Springboot默认提供静态资源目录位置需放在classpath下,目录名需要符合如下规则 /static  /public  /resources  /META-INF/resources 可以在src/main/resources目录下创建static,在该位置放置一个图片文件. 启动程序后,尝试访问http://localhost:8080/D.JPG,如能显示图片,配置成功. 2.5 SpringBoot整合freemarker视图

hadoop入门(3)&mdash;&mdash;hadoop2.0理论基础:安装部署方法

一.hadoop2.0安装部署流程         1.自动安装部署:Ambari.Minos(小米).Cloudera Manager(收费)         2.使用RPM包安装部署:Apache hadoop不支持.HDP与CDH提供         3.使用jar包安装部署:各版本均提供.(初期为了理解hadoop,建议使用这种方式)         部署流程:                 准备硬件(Linux操作系统)                 准备软件安装包,并安装基础软件

简易版的生产者消费者实现业务异步事务分离

定义一个model类 /** * 版权所有: * 项目名称: * 创建者: * 创建日期: 2018年5月10日 * 文件说明: 见类描述 */ package com.huaxin.acws.component.message.model; import java.util.Date; import java.util.Map; /** * @author * */ public class MessageModel { /** * 事件ID */ private String eventId

SpringBoot2.0基础案例(01):环境搭建和RestFul风格接口

一.SpringBoot 框架的特点 1.SpringBoot2.0 特点 1)SpringBoot继承了Spring优秀的基因,上手难度小 2)简化配置,提供各种默认配置来简化项目配置 3)内嵌式容器简化Web项目,简化编码 Spring Boot 则会帮助开发着快速启动一个 web 容器,在 Spring Boot 中,只需要在 pom 文件中添加如下一个 starter-web 依赖即可. <dependency> <groupId>org.springframework.b

ADO.NET入门教程(七) 谈谈Command对象高级应用

摘要 在上一篇文章<你必须知道的ADO.NET(六) 谈谈Command对象与数据检索>中,我详细讲解了Command对象的基础知识以及基本用法.作为ADO.NET中最具执行力的对象,Command对象实属变幻莫测.在本文中,我将与大家一起探讨Command对象的高级应用与技巧. 目录 异步执行命令 请使用参数化查询 获取插入行的ID 总结 1. 异步执行命令 在ADO.NET 2.0版本之前,执行Command对象命令时,需要等待命令完成才能执行其他操作.比如,执行ExcuteNonQuer