当前位置: 首页 > 网络应用技术

Springboot启动时自动执行代码的几种方法

时间:2023-03-07 12:33:26 网络应用技术

  当前开发的Springboot项目在开始时需要预加载。在启动过程中或开始成功之后,有许多方法可以选择如何实现代码的执行。我们可以在静态代码块中实现它,也可以在构造函数中实现,也可以通过@PostConstruct注释实现。

  当然,您还可以实现Spring的ApplicationRunner和CommandLinerunner接口来实现启动后运行的功能。将其在这些位置中的差异和加载序列进行处理。

  静态代码块

  加载类时,静态静态代码块将自动执行。

  施工方法

  在对象的初始化过程中执行。执行顺序是在静态静态代码块之后。

  @postConstruct Note

  邮政结构注释用于方法中,并且在对象依赖项被注入初始化之后,将执行此方法。

  ApplicationRunner和CommandLineerunner

  SpringBoot提供了两个接口,以在启动后实现弹簧容器的功能。这两个接口是CommandLineerunner和ApplicationRunner。

  这两个接口需要实现运行方法以在运行中实现代码。这些接口函数基本上是相同的,而区别在于运行方法的注册。ApplicationRunner的运行方法是作为应用程序ASPARPENTARGUMENTS,并且运行方法的运行方法的运行方法CommandLinerunner的运行方法是字符串数组中的段落。

  什么是应用程序

  官方文件解释是:

  提供对用于运行弹簧的参数的访问权限。

  访问应用程序参数在Spring应用程序期间使用。也就是说,我们可以获取SpringApplication.run(…)的应用程序参数。

  订单注释

  当多个类实现CommandLineerner和ApplicationRunner接口时,可以通过向类添加@Order注释来设置运行顺序。

  为了测试启动过程中运行的效果和顺序,请编写一些测试代码以查看。

  TestPostConstruct

  TestApplicationRunner

  TestCommandLineernerner

  结果

  编辑

  切换到中心

  添加图片注释,不超过140个字(可选)

  在Spring应用程序的启动过程中,绝对有必要使用@Component注释,加载类和初始化的对象自动注入。加载类时,您必须首先在静态静态代码块中执行代码,然后在初始化对象时执行结构方法。

  注入对象后,调用@postConsstruct注释方法。完成容器后,按 @order注释的顺序启动了CommandLinernerner和ApplicationRunner Interface类。

  因此,加载顺序为静态>构造函数> @postConstruct> commandlinerunner和ApplicationRunner。

  PS:防止本文无法找到本文。

  原始:https://juejin.cn/post/709646464075115726