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/converter/BaseEnumConverter.java new file mode 100644 index 00000000..7f894eff --- /dev/null +++ b/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/converter/BaseEnumConverter.java @@ -0,0 +1,49 @@ +/* + * 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 org.springframework.core.convert.converter.Converter;
+import top.continew.starter.core.enums.BaseEnum;
+import top.continew.starter.core.util.validate.ValidationUtils;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * BaseEnum 参数转换器
+ *
+ * @author Charles7c
+ * @since 2.4.0
+ */
+public class BaseEnumConverter
+ * 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/BaseEnumConverterFactory.java b/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/converter/BaseEnumConverterFactory.java
new file mode 100644
index 00000000..80428896
--- /dev/null
+++ b/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/converter/BaseEnumConverterFactory.java
@@ -0,0 +1,40 @@
+/*
+ * 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 org.springframework.core.convert.converter.Converter;
+import org.springframework.core.convert.converter.ConverterFactory;
+import top.continew.starter.core.enums.BaseEnum;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * BaseEnum 参数转换器工厂
+ *
+ * @author Charles7c
+ * @since 2.4.0
+ */
+public class BaseEnumConverterFactory implements ConverterFactory