Spring3.1返回Json时格式化日期Date

本文介绍了如何通过创建CustomObjectMapper类并配合SpringMVC的<mvc:message-converters>配置,解决使用@ResponseBody返回json时日期格式默认显示为时间戳的问题,提供了一个实用的自定义日期格式化方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一步:创建CustomObjectMapper类
/**
 * 解决SpringMVC使用@ResponseBody返回json时,日期格式默认显示为时间戳的问题。需配合<mvc:message-converters>使用
 * 
 * @author hellostory
 * @date 2013-10-31 下午04:17:52
 */
@Component("customObjectMapper")
public class CustomObjectMapper extends ObjectMapper {

	public CustomObjectMapper() {
		CustomSerializerFactory factory = new CustomSerializerFactory();
		factory.addGenericMapping(Date.class, new JsonSerializer<Date>() {
			@Override
			public void serialize(Date value, JsonGenerator jsonGenerator,
					SerializerProvider provider) throws IOException, JsonProcessingException {
				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
				jsonGenerator.writeString(sdf.format(value));
			}
		});
		this.setSerializerFactory(factory);
	}
}


第二步:配置如下:

	<mvc:annotation-driven>
		<mvc:message-converters>
			<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
				<property name="objectMapper" ref="customObjectMapper"></property>
			</bean>
		</mvc:message-converters>
	</mvc:annotation-driven>

效果如下:

格式化前:


格式化后:




### Vue 和 Spring Boot 前后端分离配置教程 #### 1. 配置概述 前后端分离是一种现代化的 Web 开发模式,其中前端专注于用户界面和交互逻辑,而后端则负责提供 API 接口以及业务逻辑处理。Vue 是一种流行的前端框架,而 Spring Boot 则是一个强大的 Java 微服务框架。两者结合可以实现高效的 SPA(单页应用程序)开发。 --- #### 2. Spring Boot 后端配置 ##### 2.1 MyBatis 配置 在 `application.yml` 文件中添加 MyBatis 的相关配置,用于指定 Mapper XML 文件的位置以及实体类所在包路径: ```yaml mybatis: mapper-locations: classpath:mapper/*.xml # 映射器位置 type-aliases-package: com.example.demo.model # 实体类包名 ``` 此配置允许 Spring Boot 自动扫描并加载所有的 Mapper 文件[^4]。 ##### 2.2 JSON 格式化 对于数据库中的间字段(如 `TIMESTAMP`),可以通过 `@JsonFormat` 注解对实体类的间属性进行格式化。例如,在用户的生日字段中设置间为 `"yyyy-MM-dd"` 格式: ```java package com.example.demo.model; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.util.Date; @Data public class User { private String id; private String name; @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date birthDate; } ``` 以上代码片段展示了如何通过 Jackson 库自动解析日期字符串为标准格式[^4]。 --- #### 3. Vue 前端配置 ##### 3.1 安装 Axios Axios 是一个基于 Promise 的 HTTP 请求库,适合用来与后端 RESTful API 进行通信。安装命令如下: ```bash npm install axios --save ``` 随后可以在 Vue 组件中引入 Axios 并发起请求: ```javascript // main.js 或单独的服务模块 import axios from &#39;axios&#39;; const instance = axios.create({ baseURL: &#39;http://localhost:8080/api&#39;, // 设置后端接口的基础 URL timeout: 5000, // 超间 (毫秒) }); export default instance; ``` ##### 3.2 发起 GET 请求示例 以下是一段简单的 Vue 方法,展示如何调用后端获取用户列表数据: ```javascript methods: { async fetchUsers() { try { const response = await this.$axios.get(&#39;/users&#39;); console.log(response.data); // 打印返回的数据 } catch (error) { console.error(&#39;Error fetching users:&#39;, error); } }, }, mounted() { this.fetchUsers(); // 页面挂载完成后立即执行查询操作 } ``` 该方法会在组件初始化向 `/api/users` 地址发送 GET 请求,并打印服务器返回的结果[^1]。 --- #### 4. CORS 配置 由于前后端运行于不同的域名或端口号,默认情况下会触发跨域问题。因此需要在 Spring Boot 中启用 CORS 支持。以下是全局配置方式: ```java @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") // 允许访问所有接口 .allowedOrigins("http://localhost:8081") // 允许来自特定前端地址的请求 .allowedMethods("GET", "POST", "PUT", "DELETE"); // 允许的方法类型 } } ``` 这样即可解决常见的跨域资源共享限制问题[^3]。 --- #### 5. 总结 通过上述步骤,开发者可以完成基本的 Vue 和 Spring Boot 前后端分离项目的搭建工作。具体流程包括但不限于:MyBatis 数据映射、JSON 间序列化、Axios 请求封装以及 CORS 解决方案等内容。 ---
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值