首页 > 编程语言 >java中使用异步方式调用接口@Async

java中使用异步方式调用接口@Async

时间:2023-08-01 18:11:58浏览次数:46  
标签:异步 调用 java String 接口 Async 方法

@Async使用:

  • 1、首先在启动类上开启注解@EnableAsync
  • 2、然后需要异步操作的方法上加上@Async
    */
    public class AsyncTest {
    @Async
    public void test() throws InterruptedException {
    //做处理
    Thread.sleep(1000);
    } /**
    • 如果需要返回值的话,通过AsyncResult进行封装
      */
      @Async
      public Future testReturn() throws InterruptedException {
      //做处理
      Thread.sleep(1000);
      return new AsyncResult<>(“hello”);
      }
      }
    • // 调用测试接口    
      @GetMapping(value = "/testAsync") public String testAsync() throws Exception { String a=service.abc(); System.out.println(a); return "abc"; }
      //测试代码
      @Async
          public void a(String _method, String _param) throws Exception {
              Thread.sleep(100000);
          }

      直接返回:abc

注解不生效问题:

@Async注解使用有几个限制:

两个方法都在同一个类里面,只是一个方法调用另一个异步方法,不生效。

解决方法:拆分两个方法,将异步方法单独放在一个类里面,然后再去调用就解决了。

有接口方法的实现类里的注解不生效。
例子:
@Controller类:DemoController
接口:DemoService
接口的实现@Service类:DemoServiceImpl
其中的同步方法为:incr()
DemoController中的实例化为

@Autowired
private DemoService demoService;
1
2
调用的时候为:

demoService.incr();
1
那么这个异步没有效果。
解决方法:在实现类中调用一个没有接口的类才可以。
————————————————
版权声明:本文为CSDN博主「冰红茶不会渴」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43241706/article/details/121555913

标签:异步,调用,java,String,接口,Async,方法
From: https://www.cnblogs.com/jinseliunian/p/17598695.html

相关文章

  • javascript按钮通过cookie限制60s后才可以点击
    javascript按钮通过cookie限制60s后才可以点击1️⃣首先创建一个html页面,放入一个按钮 2️⃣设置点击按钮的触发函数一般当点击按钮都会有一些业务需要,在需求结束后,触发saveCookie的方法 3️⃣saveCookie方法当点击查询按钮之后,触发saveCooike方法,按钮倒计时需要一个结束......
  • JavaIO流
    JavaIO流基础概念数据流:一组有序,有起点和终点的字节的数据序列。包括输入流和输出流输入流:程序从输入流读取数据源。数据源包括外界(键盘、文件、网络…),即是将数据源读入到程序的通信通道输出流:程序向输出流写入数据。将程序中的数据输出到外界(显示器、打......
  • 使用Java进行串口通信
    引言 由于java的平台无关特性使得串口编程很困难。因为串口需要一个与特定平台实现的标准的API,而这对于java来说很困难。不幸的是,Sun在java的串口通信上没有太多关注。Sun已经定义了一个叫做JavaComm的串口通信API,但它的实现却不是javaSE(标准版)的一部分。Sun只为少数java平台提......
  • 每个Java开发者都应该知道的5个JDK工具
    JDK是Java语言的软件开发工具包,没有它就无法编译Java程序。目前,有许许多多的JDK工具呈现在大家面前,但最常用的莫过于java.exe、javac.exe、jar等。除了这几个,还有哪些呢?本文作者Joe拥有多年的Java开发经验,其在博客上分享了一篇文章:5JDKToolsEveryJavaDeveloperShouldKnow,笔......
  • 计算机基础与JavaScript初识
    一:编程介绍编程:就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程.计算机程序:就是计算机所执行的一系列的指令集合,而程序全部都是用我们所掌握的语言来编写的,所以人们要控制计算机一定要通过计算机语言向计算机发出命令。从事编程的人员,就是程......
  • java jsch sftp 中文乱码解决方案
    不同jsch版本对比--->JavaSSH/Sftp库——JSch/SSHJ方案一:maven版本:<dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactId><version>0.1.55</version></dependency>代码案例:packagecom.ch......
  • 从Java后端获取时间配置字符串,并在前端使用它来设置默认公布时间。
    <divclass="layui-inline"id="AItem"><labelclass="layui-form-labelsyn-form-item-require">公布时间:</label><divclass="layui-input-block">&......
  • 学习Java的第11天
    运算符算数运算符:+,-,*,/,%,++,--赋值运算符:=关系运算符:>,<,>=,<=,==,!=instanceof逻辑运算符:&&,||,!位运算符:&,|,^,~,>>,<<,>>>(了解!!!)条件运算符?:扩展赋值运算符:+=,-=,*=,/=packageoperator;publicclassDemo03{publicstaticv......
  • 学生信息管理小系统(Java)
    一、题目要求 需要实现对应的操作二、思路(1)先设计一个主菜单界面,用户可以选择对应的功能;(2)每个板块对应一个方法,实现具体的操作;(3)最后在main函数中使用switch方法根据用户的选择对应不同的结果;三、代码1importjava.util.ArrayList;2importjava.util.Scanner;3......
  • JavaScript基础02
    隐式类型转换加法运算中,如果参与运算的有一个值不是数字,另外一个值是数字,会将数字隐式转换成字符串再与数字进行拼接减乘除取余运算中,如果有非数字,会将它隐式转成数值,然后参与运算;如果参与运算存在NaN,那么得到的是NaN运算符算术运算符+-*/%一元运算符++自增--自......