Spring Boot如何实现自动运行代码呢?

乔欣 SpringBoot 发布时间:2023-02-01 17:49:46 阅读数:3370 1
下文笔者讲述SpringBoot项目启动时,加载资源的方法分享
由于SpringBoot在启动时,需运行一些代码,用于加载相应的资源,那么如何实现这种需求呢?下文笔者将一一道来,如下所示
实现思路:
    方式1:
 	  使用static静态代码块实现
    方式2:
	  使用@PostConstruct注解实现
例:
@Component
public class TestPostConstruct {

    static {
        System.out.println("static");
    }
    public TestPostConstruct() {
        System.out.println("constructer");
    }

    @PostConstruct
    public void init() {
        System.out.println("PostConstruct");
    }
}

TestApplicationRunner

@Component
@Order(1)
public class TestApplicationRunner implements ApplicationRunner{
    @Override
    public void run(ApplicationArguments applicationArguments) throws Exception {
        System.out.println("order1:TestApplicationRunner");
    }
}

Testcommandlinerunner

@Component
@Order(2)
public class TestCommandLineRunner implements CommandLineRunner {
    @Override
    public void run(String... strings) throws Exception {
        System.out.println("order2:TestCommandLineRunner");
    }
} 
springboot自动代码运行的示例

SpringBoot启动流程

   Spring应用启动过程,
     先自动扫描有@Component注解类,
	  加载类并初始化对象进行自动注入
      加载类时首先要执行static静态代码块中的代码,之后再初始化对象时会执行构造方法

在对象注入完成后,
   调用带有@PostConstruct注解方法
   当容器启动成功后,再根据@Order注解的顺序调用CommandLineRunner和ApplicationRunner接口类中的run方法

所以SpringBoot的加载顺序为static>constructer>@PostConstruct>CommandLineRunner和ApplicationRunner
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/SpringBoot/202302/5614.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者