Springboot @Async 配合 @PostConstruct 实现启动时自动执行异步任务

最近有个需求是需要在springboot启动时启动个异步任务, 上网找了好久, 发现@Async 标注异步方法, 还有@@PostConstruct 可以让该方法启动时运行, 随即有了此篇.

@PostConstruct注解

@PostConstruct注解好多人以为是Spring提供的。其实是Java自己的注解。

Java中该注解的说明:@PostConstruct该注解被用来修饰一个非静态的void()方法。被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。

通常我们会是在Spring框架中使用到@PostConstruct注解 该注解的方法在整个Bean初始化中的执行顺序:

Constructor(构造方法) -> @Autowired(依赖注入) -> @PostConstruct(注释的方法)

@Async注解

在Spring中,基于@Async标注的方法,称之为异步方法;这些方法将在执行的时候,将会在独立的线程中被执行,调用者无需等待它的完成,即可继续其他的操作。

注意事项
  • 必须要加@EnableAsync注解
  • 不能在同一类下调用@Async注解的方法,比如A类下有a和b方法,b方法有@Async注解,不能直接这样a调用b,要把b放到其他类中
  • @Async也可以打在类上,这样类下面的所有方法都是异步的(被其他类调用的时候)

你可能感兴趣的:(多线程,设计模式,SpringBoot,spring,java,spring,boot)