首页 > 编程语言 >springboot启动后异步启动一个程序

springboot启动后异步启动一个程序

时间:2023-10-11 13:11:16浏览次数:29  
标签:异步 springboot 启动 springframework 应用程序 org import class

如果你想在 Spring Boot 启动后异步方式启动一个方法,你可以使用 Spring Framework 的异步支持和 @Async 注解来实现。以下是如何在 Spring Boot 应用程序中异步方式启动一个方法的步骤:

  1. 配置异步支持: 首先,在应用程序的主类上添加 @EnableAsync 注解,以启用异步支持
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableAsync;

@SpringBootApplication
@EnableAsync
public class MyApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

 

  1. 创建一个服务类: 创建一个服务类,包含你要异步执行的方法。
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;

@Service
public class MyAsyncService {

    @Async
    public void asyncMethod() {
        // 在这里编写你的异步方法逻辑
        System.out.println("异步方法被执行了");
    }
}

 

  1. 在应用程序的主类中调用异步方法: 在应用程序的主类的 main 方法中获取 MyAsyncService Bean 并调用异步方法。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;

@SpringBootApplication
@EnableAsync
public class MyApplication {

    public static void main(String[] args) {
        ApplicationContext context = SpringApplication.run(MyApplication.class, args);
        MyAsyncService myAsyncService = context.getBean(MyAsyncService.class);
        myAsyncService.asyncMethod();
    }
}

 

这样,异步方法将在应用程序启动后异步执行,而不会阻塞主线程。确保异步方法的调用发生在应用程序的 main 方法中。

通过使用 @Async 注解和异步方法,你可以在 Spring Boot 应用程序启动后异步执行你的方法,提高应用程序的响应性。

标签:异步,springboot,启动,springframework,应用程序,org,import,class
From: https://www.cnblogs.com/yclh/p/17756829.html

相关文章

  • SpringBoot的启动流程扩展点
    阅读说明:1.如果有排版格式问题,请移步https://www.yuque.com/mrhuang-ire4d/oufb8x/yo5ywqt5eudxvxfc?singleDoc#%20%E3%80%8ASpring%E5%8F%AF%E6%89%A9%E5%B1%95%E6%8E%A5%E5%8F%A3%E6%80%BB%E7%BB%93%E3%80%8B,选择宽屏模式效果更佳。2.本文为原创文章,转发请注明出处。SpringBoot......
  • pinpoint agent无法启动问题
    问题描述启动命令/usr/local/java/jdk1.8.0_281/bin/java-jar-javaagent:/pinpoint/pinpoint-agent-2.2.1/pinpoint-bootstrap-2.2.1.jar-Dpinpoint.agentId=153.18-2221-Dpinpoint.applicationName=sample/data/app.jar之前没有问题,但是在现场环境,启动以后报错,找不到主......
  • es和kibana的安装启动
    启动mq容器dockerrun\-eRABBITMQ_DEFAULT_USER=root\-eRABBITMQ_DEFAULT_PASS=123456\--namemq\--hostnamemq1\-p15672:15672\-p5672:5672\-d\rabbitmq:3-management  创建网络dockernetworkcreatees-net启动es容器dockerrun-d\--namee......
  • SpringBootWeb登录认证 上
    案例-登录认证在前面的课程中,我们已经实现了部门管理、员工管理的基本功能,但是大家会发现,我们并没有登录,就直接访问到了Tlias智能学习辅助系统的后台。这是不安全的,所以我们今天的主题就是登录认证。最终我们要实现的效果就是用户必须登录之后,才可以访问后台系统中的功能。1.登......
  • SpringBootWeb登录认证上中
    2.2.2.2方案二-Session前面介绍的时候,我们提到Session,它是服务器端会话跟踪技术,所以它是存储在服务器端的。而Session的底层其实就是基于我们刚才所介绍的Cookie来实现的。获取Session如果我们现在要基于Session来进行会话跟踪,浏览器在第一次请求服务器的时候,我们就可......
  • SpringBootWeb登录认证下
    2.5拦截器Interceptor学习完了过滤器Filter之后,接下来我们继续学习拦截器Interseptor。拦截器我们主要分为三个方面进行讲解:介绍下什么是拦截器,并通过快速入门程序上手拦截器拦截器的使用细节通过拦截器Interceptor完成登录校验功能我们先学习第一块内容:拦截器快速入门2.5.1快速......
  • SpringBootWeb登录认证中下
    2.4过滤器Filter刚才通过浏览器的开发者工具,我们可以看到在后续的请求当中,都会在请求头中携带JWT令牌到服务端,而服务端需要统一拦截所有的请求,从而判断是否携带的有合法的JWT令牌。那怎么样来统一拦截到所有的请求校验令牌的有效性呢?这里我们会学习两种解决方案:Filter过滤器Inter......
  • web启动加载资源
    1.struts1plugin创建类实现接口org.apache.struts.action.PlugIn;创建一个空构造函数实现接口方法配置struts-config.xml添加<plug-in/>元素例:publicclassWileyPluginimplementsPlugIn{publicstaticfinalStringPROPERTIES=......
  • SpringBoot 2.7.x 整合 swagger2 冲突问题
    问题描述SpringBoot2.7.x版本在整合swagger2时抛出异常如下:复制代码org.springframework.context.ApplicationContextException:Failedtostartbean'documentationPluginsBootstrapper';nestedexceptionisjava.lang.NullPointerException atorg.springframework......
  • AbortController创建一个可中断的异步任务执行函数---【已解决】
    1、需求背景使用异步操作(promise)或者多个循环时,遇到不能及时中断操作,回收资源时2、代码/***创建一个可中断的异步任务执行函数。*@param{function}taskFunction-要执行的异步任务函数,接受一个AbortSignal参数用于中断。*@returns{object}包含执行任务和中断......