Spring应用启动后执行任务的几种方法:

1.使用@PostConstruct注解,加在要执行的方法上,使任务可在该类初始化后执行。在该方法中可使用spring注入的其它bean,所在类必须是spring组件。
类似方法有 实现 InitializingBean 接口的afterPropertiesSet()方法;在xml配置中配置bean的init-method属性。
该方法所在类的初始化顺序为:
构造方法constructor --> @Autowired --> @PostConstruct --> InitializingBean --> init-method

2.实现ApplicationContextAware接口。重写setApplicationContext()方法,在此方法中执行额外任务。

3.使用自定义监听器继承ContextLoaderListener,实现contextInitialized方法。

4.springboot给我们提供了两种“开机启动”方式:可选择实现ApplicationRunnerCommandLineRunner 两个接口。
是在SpringApplication.run(…)方法执行结束前自动调用,run方法中都可以使用命令行参数。
多个实现类时使用@Order(value = 1)排序决定执行顺序。

5.springboot应用可在启动类的main方法中直接调用待执行的程序。可通过SpringApplication.run(…)方法返回的contex对象,获取spring容器中的service bean,执行该bean的方法。

Spring应用启动后执行任务的几种方法相关推荐

  1. java定时执行某个方法_Java中定时执行任务的三种方法

    Java中定时执行任务的三种方法 1)java.util.Timer 这个方法应该是最常用的,不过这个方法需要手工启动你的任务: Timer timer=new Timer(); timer.sche ...

  2. Spring 中获取 request 的几种方法,及其线程安全性分析

    概述 在使用Spring MVC开发Web系统时,经常需要在处理请求时使用request对象,比如获取客户端ip地址.请求的url.header中的属性(如cookie.授权信息).body中的数据等 ...

  3. linux 添加开机启动项的三种方法。

    原文地址: https://blog.csdn.net/lylload/article/details/79488968 Shell环境变量配置文件:https://blog.csdn.net/yzs ...

  4. ​linux 添加开机启动项的三种方法

    linux 添加开机启动项的三种方法. (1)编辑文件 /etc/rc.local 输入命令:vim /etc/rc.local 将出现类似如下的文本片段: #!/bin/sh # # This sc ...

  5. Linux 添加开机启动项的三种方法

    linux 添加开机启动项的三种方法. (1)编辑文件 /etc/rc.local 输入命令:vim /etc/rc.local 将出现类似如下的文本片段: #!/bin/sh # # This sc ...

  6. Java运行非Web的Springboot项目(测试类或启动主类两种方法)

    Java运行非Web的Springboot项目(测试类或启动主类两种方法) 前言 一.创建打开一个Springboot项目 二.运行项目 1.Test测试类运行 2.启动主类运行 三.持续运行不停止( ...

  7. linux下dd做优盘启动_Linux中制作U盘启动盘的三种方法,使用启动盘创建器/dd命令和Etcher...

    本文介绍在Linux系统中制作U盘启动盘的三种方法:使用启动盘创建器.dd命令和Etcher,以下以优麒麟Ubuntu Kylin 19.04为例,为你介绍这三种方法.如果要在Windows中制作U盘 ...

  8. C# 启动外部程序的几种方法

    C# 启动外部程序的几种方法: 1. 启动外部程序,不等待其退出. 2. 启动外部程序,等待其退出. 3. 启动外部程序,无限等待其退出. 4. 启动外部程序,通过事件监视其退出. // using ...

  9. android启动其他app的服务器,Android中通过外部程序启动App的三种方法

    这篇文章主要介绍了Android中通过外部程序启动App的三种方法, 本文讲解了直接通过包名. 通过自定义的Action. 通过Scheme三种方法,并分别给出操作代码,需要的朋友可以参考下 ==== ...

最新文章

  1. 【Mac】解决「无法将 chromedriver 移动到 /usr/bin 目录下」问题
  2. python安装后pip用不了 cmd命令窗口提示:Did not provide a command
  3. 5G 承载网 — Overview
  4. oracle 5632,17、oracle 性能管理
  5. ssrs 基于表达式显示_基于表达式的访问控制
  6. 上去很美的 Serverless 在中国落地的怎么样了?
  7. Jetson TX2软件源更新
  8. java读取文件buffered_关于Java中使用BufferedReader读取文件的疑惑
  9. 备忘录模式(Memento Pattern)
  10. SourceTree Win10 安装不成功解决过程记录
  11. SDL2源码分析1:初始化(SDL_Init())
  12. ASP net 2 0 中 WebResource axd 管理资源的一些知识点
  13. 文献速递 | 宿主细胞中SARS-CoV-2(新冠病毒)的m⁶A甲基化研究
  14. 启用Win10家庭版的远程桌面服务端
  15. 北航计算机控制系统实验报告,北航计算机控制系统实验报告..doc
  16. 如何在Win10登录画面默认开启小键盘数字锁定?
  17. vb.net利用listbox控件与excel文件相结合统计数据
  18. 高博14讲--第三讲 三维空间刚体运动
  19. 开源的OA办公系统,解决日常工作管理问题
  20. objective-c常见类型%z

热门文章

  1. phpMyAdmin 尝试连接到 MySQL 服务器,但服务器拒绝连接。
  2. 霸面拿腾讯offer面经
  3. 软件测试员需要学什么?
  4. 红米note2能刷机没显示无服务器,红米Note2怎么线刷刷机 红米Note2手机线刷机教程图解...
  5. php 栏目名称,PHPCMS V9调用栏目ID,栏目名称,父栏目,顶级父栏目
  6. Task5 基于深度学习的文本分类2
  7. centos7Squid 代理服务器(传统代理)
  8. 计算机网络的安全目标要求网络,国家制定并不断完善(),明确保障网络安全的基本要求和主要目标,提出重点领域的网络安全政策、工作任务和措施。 - 众答网问答...
  9. h5+app如何打包,看这里就够了~
  10. 青年台胞夏令营活动.长城颐和园一日游