010-Spring Boot 扩展分析-ApplicationContextInitializer、CommandLineRunner
2018-01-25 22:06
513 查看
一、常见的两个扩展点
1、ApplicationContextInitializer
1.1、作用实现
作用:接口实在Spring容器执行refresh之前的一个回调。Callback interface for initializing a Spring {@link ConfigurableApplicationContext}
实现:
package com.lhx.spring.springboot_enableauto; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component; @Component public class ServerSuccessReport implements CommandLineRunner { @Override public void run(String... args) throws Exception { System.out.println("----CommandLineRunner执行-----"); } }
View Code
注意同类接口
ApplicationRunner,
void run(ApplicationArguments args)
只是参数不一样
CommandLineRunner是原始参数,没有任何处理
ApplicationRunner是ApplicationArguments 对象,是对原始参数进一步的封装
3.ApplicationArguments
是对参数(main方法)进一步重载可以解析--name=value的,可以通过name获取value
package com.lhx.spring.springboot_enableauto; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ApplicationContextInitializer; import org.springframework.context.ConfigurableApplicationContext; @SpringBootApplication public class App { public static void main(String[] args) { SpringApplication application = new SpringApplication(App.class); ConfigurableApplicationContext context = application.run(args); ApplicationArguments arguments = context.getBean(ApplicationArguments.class); System.out.println(arguments.getSourceArgs().length); System.out.println(arguments.getOptionNames()); System.out.println(arguments.getOptionValues("name")); context.close(); } }
相关文章推荐
- @SpringBootApplication and CommandLineRunner
- springboot源码分析10-ApplicationContextInitializer使用
- Spring Boot 启动加载数据 CommandLineRunner
- Spring Boot 启动完成执行 CommandLineRunner
- Spring-boot Unable to start EmbeddedWebApplicationContext 分析与解决方法
- Spring Boot 启动加载数据 CommandLineRunner
- Spring Boot 启动加载数据 CommandLineRunner
- Spring Boot 启动加载数据 CommandLineRunner
- spring boot CommandLineRunner启动加载数据库实现
- Spring Boot 启动加载数据 CommandLineRunner
- Spring Boot 启动载入数据 CommandLineRunner
- Spring Boot 启动加载数据 CommandLineRunner
- Spring Boot 启动加载数据 CommandLineRunner
- Spring Boot 启动加载数据 CommandLineRunner
- Spring Boot 启动加载数据 CommandLineRunner
- Spring-boot实例学习之Simple Command line application
- Spring Boot 启动加载数据 CommandLineRunner
- 十三、 Spring Boot 启动加载数据 CommandLineRunner
- Spring-boot中添加commandLineRunner之后,写单元测试会自动执行commandLineRunner的解决方案
- Spring Boot 启动加载数据 CommandLineRunner