zoukankan      html  css  js  c++  java
  • SpringBoot几个重要的事件回调、监听机制

    (1)、需要配置在META-INF/Spring.factories

      1.ApplicationContextInitializer

     1 //
     2 // Source code recreated from a .class file by IntelliJ IDEA
     3 // (powered by Fernflower decompiler)
     4 //
     5 
     6 package org.springframework.context;
     7 
     8 public interface ApplicationContextInitializer<C extends ConfigurableApplicationContext> {
     9     //监听ioc容器启动
    10     void initialize(C var1);
    11 }

      2.SpringApplicationRunListener 

     1 //
     2 // Source code recreated from a .class file by IntelliJ IDEA
     3 // (powered by Fernflower decompiler)
     4 //
     5 
     6 package org.springframework.boot;
     7 
     8 import org.springframework.context.ConfigurableApplicationContext;
     9 import org.springframework.core.env.ConfigurableEnvironment;
    10 
    11 public interface SpringApplicationRunListener {
    12     //监听容器开始
    13     void starting();
    14     //SpringBoot环境准备好
    15     void environmentPrepared(ConfigurableEnvironment environment);
    16     //ioc容器准备好了
    17     void contextPrepared(ConfigurableApplicationContext context);
    18     //容器环境加载完成
    19     void contextLoaded(ConfigurableApplicationContext context);
    20 
    21     void started(ConfigurableApplicationContext context);
    22 
    23     void running(ConfigurableApplicationContext context);
    24     //SpringBoot创建完成
    25     void failed(ConfigurableApplicationContext context, Throwable exception);
    26 }

    (2)、只需要放到ioc容器中即可

      1.ApplicationRunner 

     1 //
     2 // Source code recreated from a .class file by IntelliJ IDEA
     3 // (powered by Fernflower decompiler)
     4 //
     5 
     6 package org.springframework.boot;
     7 
     8 @FunctionalInterface
     9 public interface ApplicationRunner {
    10     void run(ApplicationArguments args) throws Exception;
    11 }

      2.CommandLineRunner 

     1 //
     2 // Source code recreated from a .class file by IntelliJ IDEA
     3 // (powered by Fernflower decompiler)
     4 //
     5 
     6 package org.springframework.boot;
     7 
     8 @FunctionalInterface
     9 public interface CommandLineRunner {
    10     void run(String... args) throws Exception;
    11 }
  • 相关阅读:
    【基础】Attribute的妙用
    【翻译】.Net Core的意义
    【基础】迭代器详解
    【总结】数据库索引的实现原理
    【实践】基于接口的插件机制
    【总结】设计模式应用之单例模式
    【基础】多线程更新窗体UI的若干方法
    【基础】MVC路由规则
    Mybatis 分页:Pagehelper + 拦截器实现
    这四种对象属性拷贝方式,你都知道吗?
  • 原文地址:https://www.cnblogs.com/fanqisoft/p/10349074.html
Copyright © 2011-2022 走看看