mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
fix code
This commit is contained in:
parent
3a79f73927
commit
ae7e3b76cb
@ -99,6 +99,7 @@ public class SmartHttpServerEngine extends AbstractServerEngine {
|
|||||||
configuration.setHttpIdleTimeout((int) idleTimeout);
|
configuration.setHttpIdleTimeout((int) idleTimeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 请求处理器
|
||||||
bootstrap.httpHandler(new HttpServerHandler() {
|
bootstrap.httpHandler(new HttpServerHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handle(final HttpRequest request, final HttpResponse response) {
|
public void handle(final HttpRequest request, final HttpResponse response) {
|
||||||
|
@ -32,6 +32,7 @@ import java.net.InetSocketAddress;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
|
import java.util.concurrent.ThreadPoolExecutor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 基于Sun HttpServer的HTTP服务器引擎实现
|
* 基于Sun HttpServer的HTTP服务器引擎实现
|
||||||
@ -116,7 +117,7 @@ public class SunHttpServerEngine extends AbstractServerEngine {
|
|||||||
path = StrUtil.addPrefixIfNot(path, StrUtil.SLASH);
|
path = StrUtil.addPrefixIfNot(path, StrUtil.SLASH);
|
||||||
final HttpContext context = this.server.createContext(path, handler);
|
final HttpContext context = this.server.createContext(path, handler);
|
||||||
// 增加整体过滤器
|
// 增加整体过滤器
|
||||||
if(CollUtil.isNotEmpty(this.filters)){
|
if (CollUtil.isNotEmpty(this.filters)) {
|
||||||
context.getFilters().addAll(this.filters);
|
context.getFilters().addAll(this.filters);
|
||||||
}
|
}
|
||||||
return context;
|
return context;
|
||||||
@ -144,6 +145,8 @@ public class SunHttpServerEngine extends AbstractServerEngine {
|
|||||||
@Override
|
@Override
|
||||||
protected void initEngine() {
|
protected void initEngine() {
|
||||||
final ServerConfig config = this.config;
|
final ServerConfig config = this.config;
|
||||||
|
|
||||||
|
// SSL
|
||||||
final InetSocketAddress address = new InetSocketAddress(config.getHost(), config.getPort());
|
final InetSocketAddress address = new InetSocketAddress(config.getHost(), config.getPort());
|
||||||
final SSLContext sslContext = config.getSslContext();
|
final SSLContext sslContext = config.getSslContext();
|
||||||
try {
|
try {
|
||||||
@ -158,25 +161,37 @@ public class SunHttpServerEngine extends AbstractServerEngine {
|
|||||||
throw new IORuntimeException(e);
|
throw new IORuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 线程池
|
// 线程池和连接配置
|
||||||
final int coreThreads = config.getCoreThreads();
|
setExecutor(createExecutor(config));
|
||||||
final ExecutorBuilder executorBuilder = ExecutorBuilder.of();
|
|
||||||
if(coreThreads > 0){
|
|
||||||
executorBuilder.setCorePoolSize(coreThreads);
|
|
||||||
}
|
|
||||||
final int maxThreads = config.getMaxThreads();
|
|
||||||
if(maxThreads > 0){
|
|
||||||
executorBuilder.setMaxPoolSize(maxThreads);
|
|
||||||
}
|
|
||||||
final long idleTimeout = config.getIdleTimeout();
|
|
||||||
if(idleTimeout > 0){
|
|
||||||
executorBuilder.setKeepAliveTime(idleTimeout);
|
|
||||||
}
|
|
||||||
|
|
||||||
setExecutor(executorBuilder.build());
|
// 请求处理器
|
||||||
createContext("/", exchange -> SunHttpServerEngine.this.handler.handle(
|
createContext("/", exchange -> handler.handle(
|
||||||
new SunServerRequest(exchange),
|
new SunServerRequest(exchange),
|
||||||
new SunServerResponse(exchange)
|
new SunServerResponse(exchange)
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建线程池
|
||||||
|
*
|
||||||
|
* @param config {@link ServerConfig}
|
||||||
|
* @return {@link ThreadPoolExecutor}
|
||||||
|
*/
|
||||||
|
private static ThreadPoolExecutor createExecutor(final ServerConfig config) {
|
||||||
|
final ExecutorBuilder executorBuilder = ExecutorBuilder.of();
|
||||||
|
// 线程池
|
||||||
|
final int coreThreads = config.getCoreThreads();
|
||||||
|
if (coreThreads > 0) {
|
||||||
|
executorBuilder.setCorePoolSize(coreThreads);
|
||||||
|
}
|
||||||
|
final int maxThreads = config.getMaxThreads();
|
||||||
|
if (maxThreads > 0) {
|
||||||
|
executorBuilder.setMaxPoolSize(maxThreads);
|
||||||
|
}
|
||||||
|
final long idleTimeout = config.getIdleTimeout();
|
||||||
|
if (idleTimeout > 0) {
|
||||||
|
executorBuilder.setKeepAliveTime(idleTimeout);
|
||||||
|
}
|
||||||
|
return executorBuilder.build();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -99,7 +99,7 @@ public class TomcatEngine extends AbstractServerEngine {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建Connector
|
* 创建Connector,包括SSL配置
|
||||||
*
|
*
|
||||||
* @return Connector
|
* @return Connector
|
||||||
*/
|
*/
|
||||||
|
@ -66,14 +66,9 @@ public class UndertowEngine extends AbstractServerEngine {
|
|||||||
if (null != this.undertow) {
|
if (null != this.undertow) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
final Undertow.Builder builder = Undertow.builder()
|
final Undertow.Builder builder = Undertow.builder();
|
||||||
.setHandler(exchange -> {
|
|
||||||
this.handler.handle(
|
|
||||||
new UndertowRequest(exchange),
|
|
||||||
new UndertowResponse(exchange));
|
|
||||||
});
|
|
||||||
|
|
||||||
final ServerConfig config = this.config;
|
final ServerConfig config = this.config;
|
||||||
|
|
||||||
// 选项
|
// 选项
|
||||||
final int maxHeaderSize = config.getMaxHeaderSize();
|
final int maxHeaderSize = config.getMaxHeaderSize();
|
||||||
if(maxHeaderSize > 0){
|
if(maxHeaderSize > 0){
|
||||||
@ -96,6 +91,7 @@ public class UndertowEngine extends AbstractServerEngine {
|
|||||||
builder.setWorkerThreads(maxThreads);
|
builder.setWorkerThreads(maxThreads);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SSL配置
|
||||||
final SSLContext sslContext = config.getSslContext();
|
final SSLContext sslContext = config.getSslContext();
|
||||||
if(null != sslContext){
|
if(null != sslContext){
|
||||||
builder.addHttpsListener(config.getPort(), config.getHost(), sslContext);
|
builder.addHttpsListener(config.getPort(), config.getHost(), sslContext);
|
||||||
@ -103,6 +99,12 @@ public class UndertowEngine extends AbstractServerEngine {
|
|||||||
builder.addHttpListener(config.getPort(), config.getHost());
|
builder.addHttpListener(config.getPort(), config.getHost());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 请求处理器
|
||||||
|
builder.setHandler(exchange -> {
|
||||||
|
this.handler.handle(
|
||||||
|
new UndertowRequest(exchange),
|
||||||
|
new UndertowResponse(exchange));
|
||||||
|
});
|
||||||
this.undertow = builder.build();
|
this.undertow = builder.build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user