Java程序初始化启动自动执行的三种方式

 更新时间:2024年01月30日 10:28:54   作者:是菜菜的小严惜哎  
这篇文章主要介绍了Java程序初始化启动自动执行的三种方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Java程序初始化启动自动执行的三种方式

@PostConstruct注解

将此注解加在要执行的方法上,则程序初始化启动的时候,会执行此方法,一般用来初始化必要的程序初始信息

注意:

加了postconstruct注解的方法,如果执行失败,整个程序会无法正常启动!这个方法执行不完,整个程序也启动不了!!!

详情请看我的错误总结  开发错误总结---@PostConstruct注解导致的程序无法启动(@PostConstruct的执行)

开始试验:

  • 启动类
@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class,args);
    }
}
  • 测试类
@Service
@Slf4j
public class PostConstructTest {
 
    @PostConstruct
    public void testPostConstruct () {
      log.info("程序初始化执行");
    }
 
}
  • 启动看效果

CommandLineRunner接口

  • 实现 CommandLineRunner接口
@Slf4j
@Component
public class InitCommandLineRunner implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        log.info("实现CommandLineRunner接口的程序初始化");
    }
}
  • 启动看效果

ApplicationRunner 接口

  • 实现 ApplicationRunner 接口
@Component
@Slf4j
public class InitApplicationRunner implements ApplicationRunner {
    @Override
    public void run(ApplicationArguments args) throws Exception {
        log.info("实现ApplicationRunner接口程序初始化");
    }
}
  • 启动看效果

@Order注解设置启动顺序

我们给前两个实现ApplicationRunner 接口和CommandLineRunner 接口的启动类设置启动顺序

  • 为了让效果明显一点,我们让程序执行完第一个之后睡眠一下
@Slf4j
@Component
@Order(value = 1)
public class InitCommandLineRunner implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        log.info("实现CommandLineRunner接口的程序初始化");
        Thread.sleep(2000);
    }
}
@Component
@Slf4j
@Order(value = 2)
public class InitApplicationRunner implements ApplicationRunner {
    @Override
    public void run(ApplicationArguments args) throws Exception {
        log.info("实现ApplicationRunner接口程序初始化");
    }
}
  • 执行一下来看效果

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 深入理解Java反射

    深入理解Java反射

    在理解反射原理之前先要搞清类型信息。接下来通过本文给大家介绍java反射的深入理解,非常不错,具有参考借鉴价值,感兴趣的朋友一起看下吧
    2016-07-07
  • java基于QuartzJobBean实现定时功能的示例代码

    java基于QuartzJobBean实现定时功能的示例代码

    QuartzJobBean是Quartz框架中的一个抽象类,用于定义和实现可由Quartz调度的作业,本文主要介绍了java基于QuartzJobBean实现定时功能的示例代码,具有一定的参考价值,感兴趣可以了解一下
    2023-09-09
  • SpringBoot中使用JWT的实战

    SpringBoot中使用JWT的实战

    本文主要介绍了SpringBoot中使用JWT的实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • SpringBoot整合ES解析搜索返回字段问题

    SpringBoot整合ES解析搜索返回字段问题

    这篇文章主要介绍了SpringBoot整合ES解析搜索返回字段问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • 详解快速排序算法中的区间划分法及Java实现示例

    详解快速排序算法中的区间划分法及Java实现示例

    这篇文章主要介绍了详解快速排序算法中的区间划分法及Java实现示例,文中分别介绍了快排时两种区间划分的思路,需要的朋友可以参考下
    2016-04-04
  • 提高开发效率Live Templates使用技巧详解

    提高开发效率Live Templates使用技巧详解

    这篇文章主要为大家介绍了提高开发效率Live Templates使用技巧详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • SpringBoot使用PageHelper分页详解

    SpringBoot使用PageHelper分页详解

    这篇文章主要介绍了SpringBoot使用PageHelper分页详解,我们在任何的系统中,分页功能是必不可少的,然而,对于这个功能如果有一种快速开发的实现方式,当然可以节省我们很多的时间了,接下来,我就给大家基于不同的环境来说说如何使用一个分页插件,需要的朋友可以参考下
    2023-10-10
  • Win10 IDEA如何连接虚拟机中的Hadoop(HDFS)

    Win10 IDEA如何连接虚拟机中的Hadoop(HDFS)

    在虚拟机上配置Hadoop并修改core-site.xml文件,设置IP为局域网地址,IDEA中创建Maven项目,添加依赖,并检查Hadoop重启和端口转发,提供test.bat文件,通过修改IP简化使用过程
    2024-11-11
  • Java调用Python脚本实现HelloWorld的示例详解

    Java调用Python脚本实现HelloWorld的示例详解

    作为程序员,我们经常会遇到需要在Java项目中调用Python脚本的场景,下面我们来看看如何从基础到进阶,一步步实现Java与Python的"HelloWorld"交互吧
    2025-08-08
  • Java中的自动拆装箱、基本类型的转换、包装类的缓存详解

    Java中的自动拆装箱、基本类型的转换、包装类的缓存详解

    文章详细介绍了Java中数据类型的拆装箱、自动拆箱和装箱,以及包装类的缓存机制,包括基本数据类型的容量大小、转换规则和自动类型转换等
    2024-12-12

最新评论