From b62095d66e2318d35e4af07b128203b5a5e016f7 Mon Sep 17 00:00:00 2001 From: Charles7c Date: Thu, 30 Nov 2023 21:12:25 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BD=BF=E7=94=A8=20ContiNew=20Sta?= =?UTF-8?q?rter=20=E5=85=A8=E5=B1=80=E9=94=99=E8=AF=AF=E5=A4=84=E7=90=86?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/handler/GlobalErrorHandler.java | 94 ------------------- .../admin}/ContiNewAdminApplication.java | 4 - 2 files changed, 98 deletions(-) delete mode 100644 continew-admin-common/src/main/java/top/charles7c/cnadmin/common/handler/GlobalErrorHandler.java rename continew-admin-webapi/src/main/java/top/charles7c/{cnadmin => continew/admin}/ContiNewAdminApplication.java (92%) diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/handler/GlobalErrorHandler.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/handler/GlobalErrorHandler.java deleted file mode 100644 index a10ba6a1..00000000 --- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/handler/GlobalErrorHandler.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package top.charles7c.cnadmin.common.handler; - -import java.io.IOException; -import java.util.List; -import java.util.Map; - -import jakarta.annotation.Resource; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; - -import lombok.extern.slf4j.Slf4j; - -import org.springframework.boot.autoconfigure.web.ServerProperties; -import org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController; -import org.springframework.boot.autoconfigure.web.servlet.error.ErrorViewResolver; -import org.springframework.boot.web.servlet.error.ErrorAttributes; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.servlet.ModelAndView; - -import com.fasterxml.jackson.databind.ObjectMapper; - -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.json.JSONUtil; - -import top.charles7c.continew.starter.extension.crud.model.resp.R; - -/** - * 全局错误处理器 - * - * @author Charles7c - * @since 2023/9/10 9:47 - */ -@Slf4j -@RestController -public class GlobalErrorHandler extends BasicErrorController { - - @Resource - private ObjectMapper objectMapper; - - public GlobalErrorHandler(ErrorAttributes errorAttributes, ServerProperties serverProperties, - List errorViewResolvers) { - super(errorAttributes, serverProperties.getError(), errorViewResolvers); - } - - @Override - public ModelAndView errorHtml(HttpServletRequest request, HttpServletResponse response) { - Map errorAttributeMap = - super.getErrorAttributes(request, super.getErrorAttributeOptions(request, MediaType.TEXT_HTML)); - String path = (String)errorAttributeMap.get("path"); - HttpStatus status = super.getStatus(request); - R result = R.fail(status.value(), (String)errorAttributeMap.get("error")); - result.setData(path); - try { - response.setStatus(HttpStatus.OK.value()); - response.setContentType(MediaType.APPLICATION_JSON_VALUE); - objectMapper.writeValue(response.getWriter(), result); - } catch (IOException e) { - log.error("请求地址 [{}],默认错误处理时发生 IO 异常。", path, e); - } - log.error("请求地址 [{}],发生错误,错误信息:{}。", path, JSONUtil.toJsonStr(errorAttributeMap)); - return null; - } - - @Override - public ResponseEntity> error(HttpServletRequest request) { - Map errorAttributeMap = - super.getErrorAttributes(request, super.getErrorAttributeOptions(request, MediaType.ALL)); - String path = (String)errorAttributeMap.get("path"); - HttpStatus status = super.getStatus(request); - R result = R.fail(status.value(), (String)errorAttributeMap.get("error")); - result.setData(path); - log.error("请求地址 [{}],发生错误,错误信息:{}。", path, JSONUtil.toJsonStr(errorAttributeMap)); - return new ResponseEntity<>(BeanUtil.beanToMap(result), HttpStatus.OK); - } -} diff --git a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/ContiNewAdminApplication.java b/continew-admin-webapi/src/main/java/top/charles7c/continew/admin/ContiNewAdminApplication.java similarity index 92% rename from continew-admin-webapi/src/main/java/top/charles7c/cnadmin/ContiNewAdminApplication.java rename to continew-admin-webapi/src/main/java/top/charles7c/continew/admin/ContiNewAdminApplication.java index 48b08769..d84c1c28 100644 --- a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/ContiNewAdminApplication.java +++ b/continew-admin-webapi/src/main/java/top/charles7c/continew/admin/ContiNewAdminApplication.java @@ -28,8 +28,6 @@ import org.springframework.boot.ApplicationRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.web.ServerProperties; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Import; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @@ -50,8 +48,6 @@ import top.charles7c.continew.starter.core.autoconfigure.project.ProjectProperti @RestController @SpringBootApplication @RequiredArgsConstructor -@Import(cn.hutool.extra.spring.SpringUtil.class) -@ComponentScan(basePackages = {"top.charles7c.cnadmin", "cn.hutool.extra.spring"}) public class ContiNewAdminApplication implements ApplicationRunner { private final ProjectProperties projectProperties;