Преглед изворни кода

# feat:添加jackson依赖;支持返回JSON

yang yi пре 1 недеља
родитељ
комит
b50739458e
2 измењених фајлова са 43 додато и 0 уклоњено
  1. 14 0
      pom.xml
  2. 29 0
      src/main/java/space/anyi/config/SpringMvcConfig.java

+ 14 - 0
pom.xml

@@ -25,6 +25,7 @@
         <mybatis.version>3.5.6</mybatis.version>
         <mybatis-spring.version>2.0.6</mybatis-spring.version>
         <mysql.version>8.0.25</mysql.version>
+        <jackson.version>2.13.3</jackson.version>
     </properties>
 
     <dependencies>
@@ -59,6 +60,19 @@
             <artifactId>spring-aop</artifactId>
             <version>${spring.version}</version>
         </dependency>
+        <!-- 添加Jackson JSON处理库 -->
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+            <version>${jackson.version}</version>
+        </dependency>
+
+        <!-- 可选:更好的日期格式支持 -->
+        <dependency>
+            <groupId>com.fasterxml.jackson.datatype</groupId>
+            <artifactId>jackson-datatype-jsr310</artifactId>
+            <version>${jackson.version}</version>
+        </dependency>
         <!-- AspectJ(如果使用 @Transactional 需要) -->
         <dependency>
             <groupId>org.aspectj</groupId>

+ 29 - 0
src/main/java/space/anyi/config/SpringMvcConfig.java

@@ -1,8 +1,14 @@
 package space.anyi.config;
 
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.http.MediaType;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
 import org.springframework.web.servlet.config.annotation.EnableWebMvc;
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
@@ -12,6 +18,10 @@ import org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver;
 import org.thymeleaf.spring5.view.ThymeleafViewResolver;
 import org.thymeleaf.templatemode.TemplateMode;
 
+import java.text.SimpleDateFormat;
+import java.util.Collections;
+import java.util.List;
+
 /**
  * @fileName: SpringMvcConfig
  * @projectName: SSM_template
@@ -67,4 +77,23 @@ public class SpringMvcConfig implements WebMvcConfigurer {
         //        .addPathPatterns("/**")
         //        .excludePathPatterns("/login", "/register");
     }
+    // 配置消息转换器,支持JSON
+    @Override
+    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
+        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
+
+        // 配置ObjectMapper
+        ObjectMapper objectMapper = new ObjectMapper();
+        // 格式化输出
+        objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
+        // 日期格式
+        objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
+        // 忽略空字段
+        objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
+
+        converter.setObjectMapper(objectMapper);
+        //converter.setSupportedMediaTypes(List.of(MediaType.APPLICATION_JSON));
+        converter.setSupportedMediaTypes(Collections.singletonList(MediaType.APPLICATION_JSON));
+        converters.add(converter);
+    }
 }