方式一:Restlight-Core单独使用
Note
使用该种方式需要手动生成Route信息。
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使用
Note
使用该种方式时框架将自动根据传入的Controller类解析出Route信息,使用者只需要关心Controller即可。
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();
Note
通过将自定义的HandlerRegistryAware或者HandlerRegistryAwareFactory配置成SPI加载的形式或者注入Spring容器也可完成启动时注入的功能。