From 9398d686bbd3b87a2a82e273a5bda37d05ca6f30 Mon Sep 17 00:00:00 2001 From: Charles7c Date: Wed, 17 Jan 2024 20:47:23 +0800 Subject: [PATCH] =?UTF-8?q?feat(extension/crud):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=90=AF=E7=94=A8=E6=B3=A8=E8=A7=A3=EF=BC=8C=E4=BE=BF=E4=BA=8E?= =?UTF-8?q?=E7=81=B5=E6=B4=BB=E6=8E=A7=E5=88=B6=E5=90=AF=E7=94=A8/?= =?UTF-8?q?=E5=85=B3=E9=97=AD=20CRUD=20REST=20API=E3=80=81=E5=85=A8?= =?UTF-8?q?=E5=B1=80=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86=E5=99=A8=E5=A2=9E?= =?UTF-8?q?=E5=BC=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../annotation/EnableCrudRestController.java | 35 +++++++++++++++++++ .../EnableGlobalExceptionHandler.java | 35 +++++++++++++++++++ ... CrudRestControllerAutoConfiguration.java} | 10 +++--- ...obalExceptionHandlerAutoConfiguration.java | 12 ++++--- ...ot.autoconfigure.AutoConfiguration.imports | 2 -- 5 files changed, 83 insertions(+), 11 deletions(-) create mode 100644 continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/annotation/EnableCrudRestController.java create mode 100644 continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/annotation/EnableGlobalExceptionHandler.java rename continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/autoconfigure/{CrudAutoConfiguration.java => CrudRestControllerAutoConfiguration.java} (90%) diff --git a/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/annotation/EnableCrudRestController.java b/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/annotation/EnableCrudRestController.java new file mode 100644 index 00000000..f65e7cfe --- /dev/null +++ b/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/annotation/EnableCrudRestController.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. + *

+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.gnu.org/licenses/lgpl.html + *

+ * 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.continew.starter.extension.crud.annotation; + +import org.springframework.context.annotation.Import; +import top.charles7c.continew.starter.extension.crud.autoconfigure.CrudRestControllerAutoConfiguration; + +import java.lang.annotation.*; + +/** + * CRUD REST Controller 启用注解 + * + * @author Charles7c + * @since 1.2.0 + */ +@Target({ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Import({CrudRestControllerAutoConfiguration.class}) +public @interface EnableCrudRestController { +} diff --git a/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/annotation/EnableGlobalExceptionHandler.java b/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/annotation/EnableGlobalExceptionHandler.java new file mode 100644 index 00000000..2c7dcea0 --- /dev/null +++ b/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/annotation/EnableGlobalExceptionHandler.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. + *

+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.gnu.org/licenses/lgpl.html + *

+ * 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.continew.starter.extension.crud.annotation; + +import org.springframework.context.annotation.Import; +import top.charles7c.continew.starter.extension.crud.autoconfigure.GlobalExceptionHandlerAutoConfiguration; + +import java.lang.annotation.*; + +/** + * 全局异常、错误处理器启用注解 + * + * @author Charles7c + * @since 1.2.0 + */ +@Target({ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Import({GlobalExceptionHandlerAutoConfiguration.class}) +public @interface EnableGlobalExceptionHandler { +} diff --git a/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/autoconfigure/CrudAutoConfiguration.java b/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/autoconfigure/CrudRestControllerAutoConfiguration.java similarity index 90% rename from continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/autoconfigure/CrudAutoConfiguration.java rename to continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/autoconfigure/CrudRestControllerAutoConfiguration.java index bf3fa42f..f5d57f99 100644 --- a/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/autoconfigure/CrudAutoConfiguration.java +++ b/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/autoconfigure/CrudRestControllerAutoConfiguration.java @@ -19,8 +19,8 @@ package top.charles7c.continew.starter.extension.crud.autoconfigure; import jakarta.annotation.PostConstruct; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import org.springframework.format.support.FormattingConversionService; import org.springframework.web.accept.ContentNegotiationManager; @@ -30,14 +30,14 @@ import org.springframework.web.servlet.resource.ResourceUrlProvider; import top.charles7c.continew.starter.extension.crud.handler.CrudRequestMappingHandlerMapping; /** - * CRUD 自动配置 + * CRUD REST Controller 自动配置 * * @author Charles7c * @since 1.0.0 */ @Slf4j -@AutoConfiguration -public class CrudAutoConfiguration extends DelegatingWebMvcConfiguration { +@Configuration +public class CrudRestControllerAutoConfiguration extends DelegatingWebMvcConfiguration { /** * CRUD 请求映射器处理器映射器(覆盖默认 RequestMappingHandlerMapping) @@ -58,6 +58,6 @@ public class CrudAutoConfiguration extends DelegatingWebMvcConfiguration { @PostConstruct public void postConstruct() { - log.debug("[ContiNew Starter] - Auto Configuration 'Extension-CRUD' completed initialization."); + log.debug("[ContiNew Starter] - Auto Configuration 'Extension-CRUD REST Controller' completed initialization."); } } diff --git a/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/autoconfigure/GlobalExceptionHandlerAutoConfiguration.java b/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/autoconfigure/GlobalExceptionHandlerAutoConfiguration.java index a820c17b..0e38cb2d 100644 --- a/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/autoconfigure/GlobalExceptionHandlerAutoConfiguration.java +++ b/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/autoconfigure/GlobalExceptionHandlerAutoConfiguration.java @@ -16,11 +16,11 @@ package top.charles7c.continew.starter.extension.crud.autoconfigure; +import jakarta.annotation.PostConstruct; import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController; -import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import top.charles7c.continew.starter.extension.crud.handler.GlobalErrorHandler; import top.charles7c.continew.starter.extension.crud.handler.GlobalExceptionHandler; @@ -32,9 +32,13 @@ import top.charles7c.continew.starter.extension.crud.handler.GlobalExceptionHand * @since 1.0.0 */ @Slf4j -@AutoConfiguration +@Configuration(proxyBeanMethods = false) @Import({GlobalExceptionHandler.class, GlobalErrorHandler.class}) @ConditionalOnMissingBean(BasicErrorController.class) -@ComponentScan("top.charles7c.continew.starter.extension.crud.handler") public class GlobalExceptionHandlerAutoConfiguration { + + @PostConstruct + public void postConstruct() { + log.debug("[ContiNew Starter] - Auto Configuration 'Extension-Global Exception Handler' completed " + "initialization."); + } } diff --git a/continew-starter-extension/continew-starter-extension-crud/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/continew-starter-extension/continew-starter-extension-crud/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 7f744310..e69de29b 100644 --- a/continew-starter-extension/continew-starter-extension-crud/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/continew-starter-extension/continew-starter-extension-crud/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,2 +0,0 @@ -top.charles7c.continew.starter.extension.crud.autoconfigure.CrudAutoConfiguration -top.charles7c.continew.starter.extension.crud.autoconfigure.GlobalExceptionHandlerAutoConfiguration \ No newline at end of file