| 程序包 | 说明 |
|---|---|
| com.jfinal.server.undertow | |
| com.jfinal.server.undertow.hotswap |
| 限定符和类型 | 字段和说明 |
|---|---|
protected UndertowServer |
WebBuilder.undertowServer |
| 限定符和类型 | 方法和说明 |
|---|---|
UndertowServer |
UndertowServer.addHotSwapClassPrefix(String prefix)
仅用于解决项目的 JFinalConfig 继承类打成 jar 包,并且使用 undertow.devMode=true 配置
时报出的异常,以上两个条件没有同时成立时无需理会,也就是说没有报异常就无需理会
假定项目中的 JFinalConfig 的继承类 com.abc.MyConfig 被打进了 jar 包并且
undertow.devMode 设置成了 true,这里在启动项目的时候由于 ClassLoader
不同会报出以下异常:
Can not create instance of class: com.abc.MyConfig.
|
UndertowServer |
UndertowServer.addSystemClassPrefix(String prefix) |
UndertowServer |
UndertowServer.config(Consumer<UndertowConfig> configConsumer)
config 便于使用 lambda 直接拿到 UndertowConfig 对象进行更多更灵活的配置,
例子:
UndertowServer
.create(AppConfig.class)
.config( config -> {
config.setHost("0.0.0.0");
config.setSessionTimeout(30 * 60);
})
.start();
|
UndertowServer |
UndertowServer.configWeb(Consumer<WebBuilder> webBuilder)
Filter、Servlet、Listener、WebSocket 组件统一配置入口
例子:
UndertowServer.create(AppConfig.class)
.configWeb( builder -> {
// 配置 Filter
builder.addFilter("myFilter", "com.abc.MyFilter");
builder.addFilterUrlMapping("myFilter", "/*");
builder.addFilterInitParam("myFilter", "key", "value");
// 配置 Servlet
builder.addServlet("myServlet", "com.abc.MyServlet");
builder.addServletMapping("myServlet", "*.do");
builder.addServletInitParam("myServlet", "key", "value");
// 配置 Listener
builder.addListener("com.abc.MyListener");
// 配置 WebSocket,MyWebSocket 需使用 ServerEndpoint 注解
builder.addWebSocketEndpoint("com.abc.MyWebSocket");
})
.start();
以上代码给出了 Filter、Servlet、Listener、WebSocket 的配置实例,其中 MyWebSocket
需要使用 ServerEndpoint 注解标识其为一个 WebSocket 组件,例如:
|
static UndertowServer |
UndertowServer.create(Class<? extends com.jfinal.config.JFinalConfig> jfinalConfigClass)
创建 UndertowServer
尝试使用 "undertow.txt" 以及 "undertow-pro.txt" 初始化 undertow
当配置文件不存在时不抛出异常而是使用默认值进行初始化
|
static UndertowServer |
UndertowServer.create(Class<? extends com.jfinal.config.JFinalConfig> jfinalConfigClass,
String undertowConfig)
创建 UndertowServer
使用指定的配置文件及其生产环境配置文件初始化 undertow,假定指定的配置文件名为
"abc.txt",其生产环境配置文件名约定为 "abc-pro.txt"
注意:指定的配置文件必须要存在,而约定的那个生产环境配置文件可以不必存在
|
static UndertowServer |
UndertowServer.create(String jfinalConfigClass) |
static UndertowServer |
UndertowServer.create(String jfinalConfigClass,
String undertowConfig) |
static UndertowServer |
UndertowServer.create(UndertowConfig undertowConfig)
使用手动构建的 UndertowConfig 对象创建 UndertowServer
|
UndertowServer |
UndertowServer.onDeploy(BiConsumer<ClassLoader,io.undertow.servlet.api.DeploymentInfo> onDeployConsumer)
安插在 DeploymentManager.deploy() 前的钩子方法,目前用于支持添加 shiro 的
EnvironmentLoaderListener,支持 shiro 还需要调用:
addHotSwapClassPrefix("org.apache.shiro.")
|
UndertowServer |
UndertowServer.onStart(Consumer<io.undertow.Undertow.Builder> onStartConsumer)
安插在启动前的钩子方法,便于用户通过 lambda 表达式进行更多个性化配置
例如以下配置:
// In HTTP/1.1, connections are persistent unless declared otherwise.
// Adding a "Connection: keep-alive" header to every response would only
// add useless bytes.
|
UndertowServer |
UndertowServer.setContextPath(String contextPath) |
UndertowServer |
UndertowServer.setDevMode(boolean devMode)
设置为 true 时支持热加载,开发环境必配置项。
|
UndertowServer |
UndertowServer.setGzipEnable(boolean gzipEnable) |
UndertowServer |
UndertowServer.setHost(String host) |
UndertowServer |
UndertowServer.setPort(int port) |
UndertowServer |
UndertowServer.setResourcePath(String resourcePath) |
| 构造器和说明 |
|---|
WebBuilder(UndertowServer undertowServer) |
| 限定符和类型 | 字段和说明 |
|---|---|
protected UndertowServer |
HotSwapWatcher.undertowServer |
| 构造器和说明 |
|---|
HotSwapWatcher(UndertowServer undertowServer) |
Copyright © 2019. All rights reserved.