0
点赞
收藏
分享

微信扫一扫

SpringBoot启动时加载方法

钵仔糕的波波仔 2022-04-21 阅读 61

我的方法是通过 方式六 加载成功的。

springboot 启动类有两大核心: 一个是注解@SpringBootApplication,一个是main方法里面的SpringApplication.run。
1、通过main方法 启动springboot

2、首先进入SpringAplication类run方法

3、run方法新建SpringApplication对象

4、SpringApplication对象的run方法,首先创建并启动计时监控类

5、接着调用getRunListeners创建所有spring监听器

6、接着DefaultApplicationArguments初始化应用应用参数

7、接着prepareEnvironment根据运行监听器和参数准备spring环境

8、接着调用createApplicationContext方法创建应用上下文

9、通过prepareContext准备应用上下文

10、refreshContext方法刷新上下文(通过spring ioc模板方法初始化)

11、调用stop方法停止计时监控器类

12、调用started发布应用上下文 启动完成事件

13、callRunners方法执行所有runner运行器

14、调用running发布应用上下文就绪事件

15、最后返回应用上下文
 

方式一:实现ServletContextListener接口

      @Component
      public class SpringBootInitialization1 implements ServletContextListener {
            @Override
	    public void contextInitialized(ServletContextEvent sce) {
		System.out.println("方式一:实现ServletContextListener接口");
	    }
      }

方式二:方法上加注解@PostConstruct

      @Component
      public class SpringBootInitialization2 {
            @PostConstruct
            public static void init() {
		System.out.println("方式二:方法上加注解@PostConstruct");
            }

      }

方式三:实现ServletContextAware接口

@Component
public class SpringBootInitialization3 implements ServletContextAware {

	@Override
	public void setServletContext(ServletContext servletContext) {
		System.out.println("方式三:实现ServletContextAware接口");
	}

}

方式四:实现ApplicationListener接口

@Component
public class SpringBootInitialization4 implements ApplicationListener<ContextRefreshedEvent> {

	@Override
	public void onApplicationEvent(ContextRefreshedEvent event) {
		System.out.println("方式四:实现ApplicationListener<ContextRefreshedEvent>接口");
	}

}

方式五:实现ApplicationRunner接口

@Component
public class SpringBootInitialization5 implements ApplicationRunner {

	@Override
	public void run(ApplicationArguments args) throws Exception {
		System.out.println("方式五:实现ApplicationRunner接口");
	}

}

方式六:实现CommandLineRunner接口

@Component
public class SpringBootInitialization6 implements CommandLineRunner {

	@Override
	public void run(String... args) throws Exception {
		System.out.println("方式六:实现CommandLineRunner接口");

	}

}
举报

相关推荐

0 条评论