codecamp

Micronaut 服务器事件

HTTP 服务器发出许多 Bean 事件,定义在 io.micronaut.runtime.server.event 包中,您可以为其编写侦听器。下表总结了这些:

表 1. 服务器事件
事件 描述

ServerStartupEvent

服务器完成启动时发出

ServerShutdownEvent

服务器关闭时发出

ServiceReadyEvent

在调用所有 ServerStartupEvent 侦听器并公开 EmbeddedServerInstance 后发出

ServiceStoppedEvent

在调用所有 ServerShutdownEvent 侦听器并公开 EmbeddedServerInstance 后发出

在 ServerStartupEvent 的侦听器中做大量工作会增加启动时间。

以下示例定义了一个侦听 ServerStartupEvent 的 ApplicationEventListener:

监听服务器启动事件

import io.micronaut.context.event.ApplicationEventListener;
...
@Singleton
public class StartupListener implements ApplicationEventListener<ServerStartupEvent> {
    @Override
    public void onApplicationEvent(ServerStartupEvent event) {
        // logic here
        ...
    }
}

或者,您也可以在接受 ServerStartupEvent 的任何 bean 的方法上使用 @EventListener 注释:

将@EventListener 与 ServerStartupEvent 一起使用

import io.micronaut.runtime.event.annotation.EventListener;
import io.micronaut.runtime.server.event.ServerStartupEvent;
import javax.inject.Singleton;
...
@Singleton
public class MyBean {

    @EventListener
    public void onStartup(ServerStartupEvent event) {
        // logic here
        ...
    }
}


Micronaut HTTP/2 支持
Micronaut 配置 HTTP 服务器
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Micronaut 独立命令行应用程序

Micronaut 安全

Micronaut 多租户

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }