From 1fdb0291d20975e667232f866e3605712b29f8a9 Mon Sep 17 00:00:00 2001 From: Charles7c Date: Sat, 26 Jul 2025 22:35:42 +0800 Subject: [PATCH] =?UTF-8?q?fix(extension/crud):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../crud/annotation/EnableCrudApi.java | 3 +- .../CrudApiAutoConfiguration.java | 26 +-------- .../CrudRequestMappingAutoConfiguration.java | 54 +++++++++++++++++++ .../PasswordEncoderProperties.java | 2 +- 4 files changed, 58 insertions(+), 27 deletions(-) create mode 100644 continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/autoconfigure/CrudRequestMappingAutoConfiguration.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/EnableCrudApi.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 index 418504e4..74dffe0d 100644 --- a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/annotation/EnableCrudApi.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 @@ -18,6 +18,7 @@ package top.continew.starter.extension.crud.annotation; import org.springframework.context.annotation.Import; import top.continew.starter.extension.crud.autoconfigure.CrudApiAutoConfiguration; +import top.continew.starter.extension.crud.autoconfigure.CrudRequestMappingAutoConfiguration; import java.lang.annotation.*; @@ -30,5 +31,5 @@ import java.lang.annotation.*; @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented -@Import(CrudApiAutoConfiguration.class) +@Import({CrudRequestMappingAutoConfiguration.class, 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/CrudApiAutoConfiguration.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 index 79b0d0a8..8a3c5ffb 100644 --- a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/autoconfigure/CrudApiAutoConfiguration.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 @@ -19,17 +19,10 @@ 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.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; @@ -42,27 +35,10 @@ import top.continew.starter.extension.crud.aop.CrudApiAnnotationInterceptor; */ @AutoConfiguration @EnableConfigurationProperties(CrudProperties.class) -public class CrudApiAutoConfiguration extends DelegatingWebMvcConfiguration { +public class CrudApiAutoConfiguration { private static final Logger log = LoggerFactory.getLogger(CrudApiAutoConfiguration.class); - /** - * CRUD 请求映射器处理器映射器(覆盖默认 RequestMappingHandlerMapping) - */ - @Override - public RequestMappingHandlerMapping createRequestMappingHandlerMapping() { - return new CrudRequestMappingHandlerMapping(); - } - - @Bean - @Primary - @Override - public RequestMappingHandlerMapping requestMappingHandlerMapping(@Qualifier("mvcContentNegotiationManager") ContentNegotiationManager contentNegotiationManager, - @Qualifier("mvcConversionService") FormattingConversionService conversionService, - @Qualifier("mvcResourceUrlProvider") ResourceUrlProvider resourceUrlProvider) { - return super.requestMappingHandlerMapping(contentNegotiationManager, conversionService, resourceUrlProvider); - } - /** * CRUD API 注解通知 */ 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/CrudRequestMappingAutoConfiguration.java new file mode 100644 index 00000000..31c72705 --- /dev/null +++ b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/autoconfigure/CrudRequestMappingAutoConfiguration.java @@ -0,0 +1,54 @@ +/* + * 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 org.springframework.beans.factory.annotation.Qualifier; +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; + +/** + * CRUD Request Mapping 自动配置 + * + * @author Charles7c + * @since 1.0.0 + */ +@Configuration +public class CrudRequestMappingAutoConfiguration extends DelegatingWebMvcConfiguration { + + /** + * CRUD 请求映射器处理器映射器(覆盖默认 RequestMappingHandlerMapping) + */ + @Override + public RequestMappingHandlerMapping createRequestMappingHandlerMapping() { + return new CrudRequestMappingHandlerMapping(); + } + + @Bean + @Primary + @Override + public RequestMappingHandlerMapping requestMappingHandlerMapping(@Qualifier("mvcContentNegotiationManager") ContentNegotiationManager contentNegotiationManager, + @Qualifier("mvcConversionService") FormattingConversionService conversionService, + @Qualifier("mvcResourceUrlProvider") ResourceUrlProvider resourceUrlProvider) { + return super.requestMappingHandlerMapping(contentNegotiationManager, conversionService, resourceUrlProvider); + } +} diff --git a/continew-starter-security/continew-starter-security-crypto/src/main/java/top/continew/starter/security/crypto/autoconfigure/PasswordEncoderProperties.java b/continew-starter-security/continew-starter-security-crypto/src/main/java/top/continew/starter/security/crypto/autoconfigure/PasswordEncoderProperties.java index 4e4ff571..380fbe8a 100644 --- a/continew-starter-security/continew-starter-security-crypto/src/main/java/top/continew/starter/security/crypto/autoconfigure/PasswordEncoderProperties.java +++ b/continew-starter-security/continew-starter-security-crypto/src/main/java/top/continew/starter/security/crypto/autoconfigure/PasswordEncoderProperties.java @@ -19,7 +19,7 @@ package top.continew.starter.security.crypto.autoconfigure; import top.continew.starter.security.crypto.enums.PasswordEncoderAlgorithm; /** - * 密码编解码配置属性 + * 密码编码器配置属性 * * @author Jasmine * @since 1.3.0