1.简介springboot提供了非常丰富的回调接口,可以用来做很多事情,介绍一些常用的回调接口。二、常用的扩展接口1.ApplicationContextInitializer2.ApplicationListener3。ApplicationRunner4.CommandLineRunner3.实例:1.ApplicationContextInitializer接口是在spring容器初初始化之前调用的创建MyApplicationContextInitializer类实现ApplicationContextInitializer接口publicclassMyApplicationContextInitializerimplementsApplicationContextInitializer{@Overridepublicvoidinitialize(ConfigurableApplicationContextapplicationContext){System.out.println(“MyApplicationContextInitializer已启动。...");}}因为接口是在容器初始化之前,注解没用。在mian方法中初始化MyApplicationContextInitializer类@SpringBootApplicationpublicclassApplication{publicstaticvoidmain(String[]args){SpringApplicationspringApplication=newSpringApplication(Application.class);springApplication.addInitializers(newMyApplicationContextInitializer());springApplication.run(args);//SpringApplication.run(Application.class,args);}}2.ApplicationListener监听器,这个接口可以根据不同而不同events触发条件spring容器内置触发事件:ContextRefreshedEvent:ApplicationContext初始化或刷新时引发的事件ContextStartedEvent:ApplicationContext启动时引发的事件ContextStoppedEvent:ApplicationContext停止时引发的事件ContextClosedEvent:ApplicationContext停止时引发的事件代码示例:@ComponentpublicclassMyApplicationListenerimplementsApplicationListener{@OverridepublicvoidonApplicationEvent(ContextRefreshedEventcontextRefreshedEvent){System.out.println("MyApplicationListener...");}}注意:Spring也有ApplicationEvent接口来自定义事件3.ApplicationRunner的触发时机是在容器加载之后println("MyApplicationRunner...");}}源代码:/***用于表示bean包含SpringApplication,当SpringApplication时应该运行*多个ApplicationRunnerbean可以定义在同一个应用程序上下文中,并且可以使用Ordered接口或@Order注解进行排序。*/publicinterfaceApplicationRunner{/***传入应用参数*/voidrun(ApplicationArgumentsargs)throwsException;}4.CommandLineRunner功能与ApplicationRunner基本相同,不同之处在于接口的参数类型是原来的String数组,扩展ApplicationRunner会更好我的命令行运行器...");}}4.其他扩展接口:1.InstantiationAwareBeanPostProcessor添加了实例化前回调的BeanPostProcessor子接口,以及实例化后但设置显式属性前或自动组装发生前的回调。通常用于抑制特定目标bean的默认实例化,比如用特殊的TargetSources(pooltargets,lazyinitializationtargets等)创建proxy,或者实现其他的注入策略,比如fieldinjection。注意:这个接口是一个私有接口,主要供框架内部使用。它是建议尽可能实现通用的BeanPostProcessor接口,或者派生自InstantiationAwareBeanPostProcessorAdapter,屏蔽对该接口的扩展。2.SmartInstantiationAwareBeanPostProcessorInstantiationAwareBeanPostProcessor接口的扩展增加了一个回调,用于预测处理后的bean的最终类型。注意:该接口是专用接口,主要供框架内部使用。通常,应用程序提供的后处理器应该简单地实现普通的BeanPostProcessor接口或者派生自InstantiationAwareBeanPostProcessorAdapter类。感谢阅读到最后,如有不足请指正任何错误。