Spring boot里面的Listener和Event,其实是观察者模式的应用。

Spring Boot 里面的SpringApplicationRunListeners,实际上它做的事情,基本上就是一个publisher。

bootexp 这里面是对Spring boot里面的各种角色简化之后的代码。

对于Spring boot来说,Context是所有操作的核心。

package com.shahuwang.bootexp.listener;

public class AppMain {
    public static void main(String [] args){
        AppContext context = new AppContext();
        IAppListener starting = new StartingListener();
        IAppListener started = new StartedListener();
        IAppListener running = new RunningListener();
        context.addAppListeners(starting);
        context.addAppListeners(started);
        context.addAppListeners(running);
        context.publishEvent(new StartingEvent());
        context.publishEvent(new StartedEvent());
        context.publishEvent(new RunningEvent());
    }
}

如上实例代码,把你想监听的时间注册进去,等事件发布的时候就可以监听到并执行相应的代码。

等有空读下Java的设计模式再回来补全这篇文章,此文先记录下当前阅读Spring Boot源码的进展


沙湖王
62 声望12 粉丝

知识需要分享才能延续生命!