From 27535da07c26de7294d45289e64b1f78784fb7b9 Mon Sep 17 00:00:00 2001 From: coral Date: Thu, 7 Dec 2023 16:21:57 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=8E=9F=E6=9C=89tomcat=E6=9B=B4=E6=94=B9?= =?UTF-8?q?=E4=B8=BAtongweb=E4=BB=A3=E7=A0=81=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/AuthApplication.java | 4 +-- .../shutdown/GracefulShutdownConfig.java | 12 +++---- ...mcat.java => GracefulShutdownTongWeb.java} | 21 ++++++------ .../java/com/epmet/GatewayApplication.java | 32 ++----------------- 4 files changed, 21 insertions(+), 48 deletions(-) rename code/smart-community/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/shutdown/{GracefulShutdownTomcat.java => GracefulShutdownTongWeb.java} (77%) diff --git a/code/smart-community/epmet-auth/src/main/java/com/epmet/AuthApplication.java b/code/smart-community/epmet-auth/src/main/java/com/epmet/AuthApplication.java index 07d85a0d..0bb528e1 100644 --- a/code/smart-community/epmet-auth/src/main/java/com/epmet/AuthApplication.java +++ b/code/smart-community/epmet-auth/src/main/java/com/epmet/AuthApplication.java @@ -1,8 +1,8 @@ /** * Copyright (c) 2018 人人开源 All rights reserved. - * + *

* https://www.renren.io - * + *

* 版权所有,侵权必究! */ diff --git a/code/smart-community/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/shutdown/GracefulShutdownConfig.java b/code/smart-community/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/shutdown/GracefulShutdownConfig.java index 143fce4f..6397befd 100644 --- a/code/smart-community/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/shutdown/GracefulShutdownConfig.java +++ b/code/smart-community/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/shutdown/GracefulShutdownConfig.java @@ -1,13 +1,13 @@ package com.epmet.commons.tools.config.shutdown; +import com.tongweb.springboot.starter.TongWebServletWebServerFactory; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; import org.springframework.boot.web.servlet.server.ServletWebServerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** - * 优雅停机配置 + * 优雅停机配置 tomcat转换tongWeb * matchIfMissing:当缺少shutdown.graceful.enable配置的时候,是否加载该配置类。true:缺少也加载,false:默认的,缺少配置不加载,即不生效 */ @Configuration @@ -15,10 +15,10 @@ import org.springframework.context.annotation.Configuration; public class GracefulShutdownConfig { @Bean - public ServletWebServerFactory servletContainer(GracefulShutdownTomcat gracefulShutdownTomcat) { - TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory(); - tomcat.addConnectorCustomizers(gracefulShutdownTomcat); - return tomcat; + public ServletWebServerFactory servletContainer(GracefulShutdownTongWeb gracefulShutdownTongWeb) { + TongWebServletWebServerFactory tongWeb = new TongWebServletWebServerFactory(); + tongWeb.addConnectorCustomizers(gracefulShutdownTongWeb); + return tongWeb; } } diff --git a/code/smart-community/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/shutdown/GracefulShutdownTomcat.java b/code/smart-community/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/shutdown/GracefulShutdownTongWeb.java similarity index 77% rename from code/smart-community/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/shutdown/GracefulShutdownTomcat.java rename to code/smart-community/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/shutdown/GracefulShutdownTongWeb.java index 58ac781e..b4133d3c 100644 --- a/code/smart-community/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/shutdown/GracefulShutdownTomcat.java +++ b/code/smart-community/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/shutdown/GracefulShutdownTongWeb.java @@ -1,28 +1,26 @@ package com.epmet.commons.tools.config.shutdown; -import org.apache.catalina.connector.Connector; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; +import com.tongweb.container.connector.Connector; +import com.tongweb.springboot.starter.TongWebConnectorCustomizer; +import lombok.extern.slf4j.Slf4j; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer; import org.springframework.context.ApplicationListener; import org.springframework.context.event.ContextClosedEvent; import org.springframework.stereotype.Component; +import javax.annotation.Resource; import java.util.concurrent.Executor; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; +@Slf4j @EnableConfigurationProperties(ShutdownProperties.class) @Component @ConditionalOnProperty(prefix = "shutdown.graceful", name = "enable", havingValue = "true", matchIfMissing = false) -public class GracefulShutdownTomcat implements TomcatConnectorCustomizer, ApplicationListener { +public class GracefulShutdownTongWeb implements TongWebConnectorCustomizer, ApplicationListener { - private static final Logger logger = LoggerFactory.getLogger(GracefulShutdownTomcat.class); - - @Autowired + @Resource private ShutdownProperties shutdownProperties; private volatile Connector connector; @@ -31,6 +29,7 @@ public class GracefulShutdownTomcat implements TomcatConnectorCustomizer, Applic public void customize(Connector connector) { this.connector = connector; } + @Override public void onApplicationEvent(ContextClosedEvent contextClosedEvent) { this.connector.pause(); @@ -42,11 +41,11 @@ public class GracefulShutdownTomcat implements TomcatConnectorCustomizer, Applic threadPoolExecutor.shutdown(); if (!threadPoolExecutor.awaitTermination(waitTimeSecs, TimeUnit.SECONDS)) { String msg = String.format("Tomcat在【%s】秒内优雅停机失败,请手动处理", waitTimeSecs); - logger.error(msg); + log.error(msg); } } catch (InterruptedException ex) { Thread.currentThread().interrupt(); } } } -} \ No newline at end of file +} diff --git a/code/smart-community/epmet-gateway/src/main/java/com/epmet/GatewayApplication.java b/code/smart-community/epmet-gateway/src/main/java/com/epmet/GatewayApplication.java index 399f574d..32cfa93b 100644 --- a/code/smart-community/epmet-gateway/src/main/java/com/epmet/GatewayApplication.java +++ b/code/smart-community/epmet-gateway/src/main/java/com/epmet/GatewayApplication.java @@ -8,15 +8,9 @@ package com.epmet; -import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.aspect.ServletExceptionHandler; import com.epmet.commons.tools.config.RedissonConfig; import com.epmet.commons.tools.config.ThreadDispatcherConfig; -import com.epmet.commons.tools.redis.RedisKeys; -import com.epmet.commons.tools.redis.RedisUtils; -import com.epmet.filter.CpProperty; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; @@ -24,9 +18,6 @@ import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.FilterType; -import javax.annotation.PostConstruct; -import java.util.List; - /** * 网关服务 * @@ -36,28 +27,11 @@ import java.util.List; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients -//@ServletComponentScan(basePackages = "com.epmet") @ComponentScan(basePackages = {"com.epmet.*"}, excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {RedissonConfig.class, ThreadDispatcherConfig.class, ServletExceptionHandler.class})) public class GatewayApplication { - @Autowired - private CpProperty cpProperty; - - @Autowired - private RedisUtils redisUtils; - - public static void main(String[] args) { - SpringApplication.run(GatewayApplication.class, args); - } + public static void main(String[] args) { + SpringApplication.run(GatewayApplication.class, args); + } - /** - * 初始化运营端校验资源列表 - */ -// @PostConstruct -// public void initOperExamineResources() { -// if (!redisUtils.hasKey(RedisKeys.getOperExamineResourceUrls())) { -// List operExamineResourceUrls = cpProperty.getOperExamineResourceUrls(); -// redisUtils.setString(RedisKeys.getOperExamineResourceUrls(), JSON.toJSONString(operExamineResourceUrls)); -// } -// } }