Java项目启动时执行指定方法的几种方式
很多时候我们都会碰到需要在程序启动时去执行的方法,比如说去读取某个配置,预加载缓存,定时任务的初始化等。这里给出几种解决方案供大家参考。
1. 使用@PostConstruct注解
这个注解呢,可以在Spring加载这个类的时候执行一次。来看一下下方代码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
@Component public class Test {public Test(){System.out.println("我最先执行");}/***我第二个执行*/@Autowiredprivate T t;/***我第三个个执行*/@PostConstructprivate void init(){//假装有代码}} |
上方就是@PostConstruct注解的使用方法了,同时也表示了此类被加载时的执行顺序。
2. CommandLineRunner接口
使用CommandLineRunner接口类似于Main方法启动,可以接受一个字符串数组的命令行参数,来看一下实现
1 2 3 4 5 6 7 8 |
@Component public class MyCommandLineRunner implements CommandLineRunner{@Overridepublic void run(String... args) throws Exception{//假装有代码} } |
3. ApplicationRunner 接口
此种方式与实现CommandLineRunner接口的区别就是他的参数是ApplicationArguments
1 2 3 4 5 6 7 8 9 10 |
@Order(value = 1) @Component public class MyApplicationRunner implements ApplicationRunner{@Overridepublic void run(ApplicationArguments args) throws Exception{//假装有代码} } |
我们可以看到,此类相比较于第二种方式还增加一个@Order注解,这个注解其实第二种方式也是能加的。
它的作用就是控制类的加载顺序,这个顺序是从小到大的。比如说启动时先去加载Order的value等于1的类,然后去加载等于2的类。
本文出自http://zhixiang.org.cn,转载请保留。
Java项目启动时执行指定方法的几种方式相关推荐
- java启动时执行_java怎么实现项目启动时执行指定方法
本文实例为大家共享了java项目启动时执行指定方法,供大家参考,详细内容如下 想到的就是监听步骤如下: 1.配置web.xml com.listener.InitListener 2.编写InitLi ...
- java 项目启动初始化_Spring项目启动时执行初始化方法
一.applicationContext.xml配置bean init-method="initKeyWord"> classpath:sensitive-word.xml ...
- SpringBoot 在启动时执行某些方法
合理利用 SpringBoot 的 @PostConstruct .CommandLineRunner 或 ApplicationRunner: 某些场景下,需要在项目启动时就执行某些方法,例如:数据 ...
- spring配置项目启动时执行
首先在配置文件中添加配置 <!-- 配置项目启动时执行 init方法--> <bean id="smsmanage" class="com.longr ...
- 介绍Spring Boot 启动时,自动执行指定方法的 7 种方法
目录 前言 实现方式 1.实现ServletContextListener接口contextInitialized方法 2.静态代码块方式 3.@PostConstruct注解方式 4. 实现Serv ...
- java项目启动时登录,Java项目启动时报错解决方法
当前位置:我的异常网» Java Web开发 » Java项目启动时报错解决方法 Java项目启动时报错解决方法 www.myexceptions.net 网友分享于:2013-08-07 浏览: ...
- java web 启动时执行_java Web 启动时自动执行代码的几种方式
Web容器启动后执行代码的几种方式,其执行顺序为:4===>5===>1===>2===>3,即指定init-method的Bean开始执行,接着实现spring的Bean后置 ...
- 【Spring框架】 ☞ 项目启动时执行特定处理及ApplicationListener源码分析
1.背景 在一些业务场景中,在容器启动完成后,需要处理一些诸如:kafka业务注册,数据处理,初始化缓存等的操作. 本文重点介绍如何在服务启动中,或启动完成时执行相关处理. 2.针对上述场景,有如下实 ...
- JAVA - 项目启动后执行定时任务
项目启动后不执行定时任务?? 这个得在启动类上加 @EnableScheduling 注解 @EnableScheduling @SpringBootApplication public class ...
最新文章
- (二)spring cloud微服务分布式云架构 - 整合企业架构的技术点
- 8.3折特惠票仅剩3天!「2019 嵌入式智能国际大会」全日程大公开!
- 文件压缩和文件打包命令
- sqlserver2008清除日志方法_服务器磁盘使用率100%解决方法
- cubase怎么添加midi设备_WIDI MASTER:5针无线蓝牙MIDI适配器
- 《Think Python》最新中文版火了,附完整PDF下载!
- 使用MRUnit测试Hadoop程序
- Tailwindcss尤大神都fork了,是未来的趋势?
- 王道考研 计算机网络8 物理层基本概念 数据通信相关术语
- linux单用户模式修复磁盘,在单用户模式下使用fsck命令修复受损的Mac硬盘
- anaconda安装keras_关于yolo模型的试安装及关于现阶段安排的一点想法
- iosession在linux下拒绝链接,iosession 关闭
- (转)对D3DXVec3Project 和D3DXVec3UnProject的认识
- Spark 集群安装
- MongoDB数据文件内部结构
- c语言系统主函数流程图,c语言流程图【调解方式】
- 人工智能基础入门——神经网络讲解
- H.264 NAL语法语意以及字节流的语法语意
- 微信小程序授权登录、绑定手机号(接口+小程序)
- 《Unity 3D人工智能编程》——2.2 子弹类
热门文章
- Git系列之git log高级命令
- Android使用Apache HttpClient发送GET、POST请求
- 百度地图应用开发(一)
- C++学习之:复制和粘贴文件/文件夹
- 系统集成项目管理工程师软考辅导——3年真题透解与全真模拟
- linux下配置ip地址四种方法(图文)
- Hashtable的遍历
- Android Studio中架包打包和依赖冲突解决
- C#代码生成工具:文本模板初体验 使用T4批量修改实体框架(Entity Framework)的类名...
- rhel 5 检测软件awstats,cacti,ntop搭建