1. 程式人生 > >Spring Boot 擴充套件分析

Spring Boot 擴充套件分析

 一.Spring Boot 擴充套件分析之ApplicationContextInitializer

說明
在printBanner之後呼叫.在refresh()方法之前呼叫.

使用

建立實現介面類.將該類按下面使用方式:
1.run之前將物件直接加入到application.例如:

public static void main(String[] args) {       
         SpringApplication application = new SpringApplication(StartApplication.class);
        application.addInitializers(new MyApplicationContextInitializer());

        application.run(args);
}


2.在配置檔案application.properties檔案中加入

context.initializer.classes=com.demo.framework.security.common.MyApplicationContextInitializer

3.在META-INF/spring.factories中配置.例如

org.springframework.context.ApplicationContextInitializer=\
com.demo.framework.security.common.MyApplicationContextInitializer

二.Spring Boot 擴充套件分析之ApplicationRunner和CommandLineRunner

說明:

全部初始化完了之後的回撥

使用:

1.實現ApplicationRunner或者CommandLineRunner介面.把該類納入spring容器中即可

2.同時注入多個例項時,可通過@order(1)註解或者實現org.springframework.core.Ordered;介面控制先後順序.order中的值越小.越先執行.最終排序原理為:

AnnotationAwareOrderComparator.sort(runners);

兩個介面的區別和用處

1.ApplicationRunner提供ApplicationArguments args.是springboot對main方法中引數封裝之後的引數(解析好了.以key-value形式存在的.方便處理)

2.CommandLineRunner提供main方法中String... args .是原始的引數沒有做任何處理.直接就是字串.不方便處理