diff --git a/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/converter/BaseEnumConverterAutoConfiguration.java b/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/converter/BaseEnumConverterAutoConfiguration.java deleted file mode 100644 index 32d5ee4..0000000 --- a/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/converter/BaseEnumConverterAutoConfiguration.java +++ /dev/null @@ -1,48 +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.web.autoconfigure.converter; - -import jakarta.annotation.PostConstruct; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.boot.autoconfigure.AutoConfiguration; -import org.springframework.format.FormatterRegistry; -import org.springframework.web.servlet.config.annotation.EnableWebMvc; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; - -/** - * BaseEnum 参数转换自动配置 - * - * @author Charles7c - * @since 2.4.0 - */ -@EnableWebMvc -@AutoConfiguration -public class BaseEnumConverterAutoConfiguration implements WebMvcConfigurer { - - private static final Logger log = LoggerFactory.getLogger(BaseEnumConverterAutoConfiguration.class); - - @Override - public void addFormatters(FormatterRegistry registry) { - registry.addConverterFactory(new BaseEnumConverterFactory()); - } - - @PostConstruct - public void postConstruct() { - log.debug("[ContiNew Starter] - Auto Configuration 'Web-BaseEnum Converter' completed initialization."); - } -} diff --git a/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/converter/BaseEnumConverter.java b/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/mvc/BaseEnumConverter.java similarity index 96% rename from continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/converter/BaseEnumConverter.java rename to continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/mvc/BaseEnumConverter.java index 7f894ef..69e9c78 100644 --- a/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/converter/BaseEnumConverter.java +++ b/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/mvc/BaseEnumConverter.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package top.continew.starter.web.autoconfigure.converter; +package top.continew.starter.web.autoconfigure.mvc; import org.springframework.core.convert.converter.Converter; import top.continew.starter.core.enums.BaseEnum; diff --git a/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/converter/BaseEnumConverterFactory.java b/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/mvc/BaseEnumConverterFactory.java similarity index 95% rename from continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/converter/BaseEnumConverterFactory.java rename to continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/mvc/BaseEnumConverterFactory.java index 8042889..20a6409 100644 --- a/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/converter/BaseEnumConverterFactory.java +++ b/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/mvc/BaseEnumConverterFactory.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package top.continew.starter.web.autoconfigure.converter; +package top.continew.starter.web.autoconfigure.mvc; import org.springframework.core.convert.converter.Converter; import org.springframework.core.convert.converter.ConverterFactory; diff --git a/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/mvc/WebMvcAutoConfiguration.java b/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/mvc/WebMvcAutoConfiguration.java new file mode 100644 index 0000000..e83cc04 --- /dev/null +++ b/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/mvc/WebMvcAutoConfiguration.java @@ -0,0 +1,81 @@ +/* + * 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.web.autoconfigure.mvc; + +import jakarta.annotation.PostConstruct; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.format.FormatterRegistry; +import org.springframework.http.converter.ByteArrayHttpMessageConverter; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +import java.util.List; +import java.util.Objects; + +/** + * Web MVC 自动配置 + * + * @author Charles7c + * @since 2.4.0 + */ +@EnableWebMvc +@AutoConfiguration +public class WebMvcAutoConfiguration implements WebMvcConfigurer { + + private static final Logger log = LoggerFactory.getLogger(WebMvcAutoConfiguration.class); + private final MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter; + + public WebMvcAutoConfiguration(MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter, + ThreadPoolTaskExecutor threadPoolTaskExecutor) { + this.mappingJackson2HttpMessageConverter = mappingJackson2HttpMessageConverter; + } + + /** + * 解决 Jackson2ObjectMapperBuilderCustomizer 配置不生效的问题 + *
+ * MappingJackson2HttpMessageConverter 对象在程序启动时创建了多个,移除多余的,保证只有一个 + *
+ */ + @Override + public void extendMessageConverters(List