From ca33851fbd92f145229844c464a0cf1edbf7b9c7 Mon Sep 17 00:00:00 2001 From: Charles7c Date: Fri, 25 Jul 2025 21:15:57 +0800 Subject: [PATCH] =?UTF-8?q?refactor(extension/crud):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=20CRUD=20API=20=E8=87=AA=E5=8A=A8=E9=85=8D=E7=BD=AE=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=EF=BC=8CEnableCrudRestController=20=3D>=20EnableCrudA?= =?UTF-8?q?pi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...RestController.java => EnableCrudApi.java} | 9 ++- ...ion.java => CrudApiAutoConfiguration.java} | 42 ++++++++++-- .../CrudRestControllerAutoConfiguration.java | 64 ------------------- 3 files changed, 41 insertions(+), 74 deletions(-) rename continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/annotation/{EnableCrudRestController.java => EnableCrudApi.java} (71%) rename continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/autoconfigure/{CrudRequestMappingAutoConfiguration.java => CrudApiAutoConfiguration.java} (62%) delete mode 100644 continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/autoconfigure/CrudRestControllerAutoConfiguration.java diff --git a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/annotation/EnableCrudRestController.java b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/annotation/EnableCrudApi.java similarity index 71% rename from continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/annotation/EnableCrudRestController.java rename to continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/annotation/EnableCrudApi.java index 77429063..418504e4 100644 --- a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/annotation/EnableCrudRestController.java +++ b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/annotation/EnableCrudApi.java @@ -17,13 +17,12 @@ package top.continew.starter.extension.crud.annotation; import org.springframework.context.annotation.Import; -import top.continew.starter.extension.crud.autoconfigure.CrudRequestMappingAutoConfiguration; -import top.continew.starter.extension.crud.autoconfigure.CrudRestControllerAutoConfiguration; +import top.continew.starter.extension.crud.autoconfigure.CrudApiAutoConfiguration; import java.lang.annotation.*; /** - * CRUD REST Controller 启用注解 + * CRUD API 启用注解 * * @author Charles7c * @since 1.2.0 @@ -31,5 +30,5 @@ import java.lang.annotation.*; @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented -@Import({CrudRequestMappingAutoConfiguration.class, CrudRestControllerAutoConfiguration.class}) -public @interface EnableCrudRestController {} +@Import(CrudApiAutoConfiguration.class) +public @interface EnableCrudApi {} diff --git a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/autoconfigure/CrudRequestMappingAutoConfiguration.java b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/autoconfigure/CrudApiAutoConfiguration.java similarity index 62% rename from continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/autoconfigure/CrudRequestMappingAutoConfiguration.java rename to continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/autoconfigure/CrudApiAutoConfiguration.java index a8daaa66..79b0d0a8 100644 --- a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/autoconfigure/CrudRequestMappingAutoConfiguration.java +++ b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/autoconfigure/CrudApiAutoConfiguration.java @@ -16,26 +16,35 @@ package top.continew.starter.extension.crud.autoconfigure; +import jakarta.annotation.PostConstruct; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.context.properties.EnableConfigurationProperties; 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; import org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; import org.springframework.web.servlet.resource.ResourceUrlProvider; +import top.continew.starter.extension.crud.annotation.CrudApi; +import top.continew.starter.extension.crud.aop.CrudApiAnnotationAdvisor; +import top.continew.starter.extension.crud.aop.CrudApiAnnotationInterceptor; /** - * CRUD Request Mapping 自动配置 + * CRUD API 自动配置 * * @author Charles7c - * @since 1.0.0 + * @since 2.7.5 */ -@Configuration +@AutoConfiguration @EnableConfigurationProperties(CrudProperties.class) -public class CrudRequestMappingAutoConfiguration extends DelegatingWebMvcConfiguration { +public class CrudApiAutoConfiguration extends DelegatingWebMvcConfiguration { + + private static final Logger log = LoggerFactory.getLogger(CrudApiAutoConfiguration.class); /** * CRUD 请求映射器处理器映射器(覆盖默认 RequestMappingHandlerMapping) @@ -53,4 +62,27 @@ public class CrudRequestMappingAutoConfiguration extends DelegatingWebMvcConfigu @Qualifier("mvcResourceUrlProvider") ResourceUrlProvider resourceUrlProvider) { return super.requestMappingHandlerMapping(contentNegotiationManager, conversionService, resourceUrlProvider); } + + /** + * CRUD API 注解通知 + */ + @Bean + @ConditionalOnMissingBean + public CrudApiAnnotationAdvisor crudApiAnnotationAdvisor(CrudApiAnnotationInterceptor crudApiAnnotationInterceptor) { + return new CrudApiAnnotationAdvisor(crudApiAnnotationInterceptor, CrudApi.class); + } + + /** + * CRUD API 注解拦截器 + */ + @Bean + @ConditionalOnMissingBean + public CrudApiAnnotationInterceptor crudApiAnnotationInterceptor() { + return new CrudApiAnnotationInterceptor(); + } + + @PostConstruct + public void postConstruct() { + log.debug("[ContiNew Starter] - Auto Configuration 'Extension-CRUD API' completed initialization."); + } } diff --git a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/autoconfigure/CrudRestControllerAutoConfiguration.java b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/autoconfigure/CrudRestControllerAutoConfiguration.java deleted file mode 100644 index 148290f3..00000000 --- a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/autoconfigure/CrudRestControllerAutoConfiguration.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * 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.continew.starter.extension.crud.autoconfigure; - -import jakarta.annotation.PostConstruct; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.boot.autoconfigure.AutoConfiguration; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import top.continew.starter.extension.crud.annotation.CrudApi; -import top.continew.starter.extension.crud.aop.CrudApiAnnotationAdvisor; -import top.continew.starter.extension.crud.aop.CrudApiAnnotationInterceptor; - -/** - * CRUD REST Controller 自动配置 - * - * @author Charles7c - * @since 2.7.5 - */ -@AutoConfiguration -@EnableConfigurationProperties(CrudProperties.class) -public class CrudRestControllerAutoConfiguration { - - private static final Logger log = LoggerFactory.getLogger(CrudRestControllerAutoConfiguration.class); - - /** - * CRUD API 注解通知 - */ - @Bean - @ConditionalOnMissingBean - public CrudApiAnnotationAdvisor crudApiAnnotationAdvisor(CrudApiAnnotationInterceptor crudApiAnnotationInterceptor) { - return new CrudApiAnnotationAdvisor(crudApiAnnotationInterceptor, CrudApi.class); - } - - /** - * CRUD API 注解拦截器 - */ - @Bean - @ConditionalOnMissingBean - public CrudApiAnnotationInterceptor crudApiAnnotationInterceptor() { - return new CrudApiAnnotationInterceptor(); - } - - @PostConstruct - public void postConstruct() { - log.debug("[ContiNew Starter] - Auto Configuration 'Extension-CRUD REST Controller' completed initialization."); - } -}