方式一:Restlight-Core单独使用

eg.

自定义RouteRegistryAware

public interface RouteRegistryAware {

    /**
     * This callback method is invoked when all the internal routes have been registered to {@code registry}.
     *
     * @param registry registry
     */
    void setRegistry(RouteRegistry registry);

}

应用启动时通过自动注入的方式将RouteRegistry传递给RouteRegistryAware的实现类,在程序运行期间可以通过RouteRegistry动态的添加/卸载路由。

将自定义的RouteRegistryAware在应用启动时添加到启动上下文中

Restlight.forServer()
        .daemon(false)
        .deployments()
        .addRouteRegistryAware(new CustomRouteRegistryAware())
        .server()
        .start();

通过将自定义的RouteRegistryAware或者RouteRegistryAwareFactory配置成SPI加载的形式或者注入Spring容器也可完成启动时注入的功能。

方式二:配合SpringMVC或者JAX-RS使用

eg.

自定义HandlerRegistryAware

public interface HandlerRegistryAware {

    /**
     * This callback method is invoked when all the internal handlers have been registered to {@code registry}.
     *
     * @param registry registry
     */
    void setRegistry(HandlerRegistry registry);

}

应用启动时通过自动注入的方式将HandlerRegistry传递给HandlerRegistryAware的实现类,在程序运行期间可以通过HandlerRegistry动态的添加/卸载路由。

将自定义的HandlerRegistryAware在应用启动时添加到启动上下文中

Restlight.forServer()
        .daemon(false)
        .deployments()
        .addHandlerRegistryAware(new CustomRouteRegistryAware())
        .server()
        .start();