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);

两个接口的区别和用处

扫描二维码关注公众号,回复: 3986114 查看本文章

1.ApplicationRunner提供ApplicationArguments args.是springboot对main方法中参数封装之后的参数(解析好了.以key-value形式存在的.方便处理)

2.CommandLineRunner提供main方法中String... args .是原始的参数没有做任何处理.直接就是字符串.不方便处理

猜你喜欢

转载自blog.csdn.net/hhj13978064496/article/details/83347160