SpringBoot--定义全局日期响应格式

本文介绍两种定义全局日期响应格式的方法:一是通过application.properties文件配置,二是通过消息转换器实现。并提供更改特定VO日期格式的方法。

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

背景:

今天遇到群友问如何定义全局日期响应格式,于是乎看了各种帖子,最后根据实际试验,总结出如下方法:

方法一(最方便):

#在application.properties文件中配置
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

        定义,全局响应的日期格式后,如果希望单独更改某个VO的日期格式,可以使用注解 @JsonFormat(pattern = "yyyy")
或者@DateTimeFormat(pattern = "yyyy-MM-dd")。

       另外,如果配置全局日期格式后,如果希望更改响应字段的名字,不能使用fastJSON的@JSONField注解,原因可以参考 https://blog.youkuaiyun.com/u011410529/article/details/67633835 。可以使用@JsonProperty("Date")将字段date改为首字母大写的Date。

public class UserInfo implements Serializable {


    private static final long serialVersionUID = -1L;

    // @JsonFormat(pattern = "yyyy")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date date;



    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }
}

方法二(消息转换器):

package com.froad.util;

import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import java.text.SimpleDateFormat;

/**
 * FileName: Json2MessageConventerConfig
 * DESCRIPTION: 设置全局响应日期格式
 *
 * @author: SLY
 * @create: 2019/4/1
 */
@Configuration
public class Json2MessageConventerConfig {

    @Bean
    public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
        ObjectMapper objectMapper = new ObjectMapper();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH");
        objectMapper.setDateFormat(sdf);
        converter.setObjectMapper(objectMapper);
        return converter;
    }

}

如果希望单独更改某个VO的日期格式,同样可以使用方法一中的方法。

### 如何使用 Spring Boot 创建 HTTP RESTful API #### 项目创建与依赖管理 要开始构建基于 Spring Boot 的 RESTful API 应用程序,首先需要设置一个新的 Maven 或 Gradle 项目,并引入必要的依赖项。对于大多数 Web 应用来说,`spring-boot-starter-web` 是必需的,因为它包含了构建 Web 应用所需的核心库。 ```xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> ``` #### 启动类定义 接着,在应用程序入口处编写启动类,该类通常带有 `@SpringBootApplication` 注解,用于启用自动配置和其他特性。此注解集成了组件扫描、配置属性加载等功能[^3]。 ```java package cn.juwatech.springbootrest; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringBootRestApplication { public static void main(String[] args) { SpringApplication.run(SpringBootRestApplication.class, args); } } ``` #### 控制器层设计 为了暴露 REST 接口给客户端调用,需创建一个控制器类。此类中的每一个公共方法都映射到具体的 URL 路径上,并通过相应的 HTTP 方法访问。例如: - 使用 `@RestController` 来标记这是一个返回 JSON 数据而非视图页面的控制器; - 利用 `@RequestMapping`, `@GetMapping`, `@PostMapping` 等注解指定路由规则以及所支持的方法类型; 下面是一个简单的例子展示如何获取单个用户的详情信息[^5]。 ```java @RestController @RequestMapping("/api/users") public class UserController { private final UserService userService; @Autowired public UserController(UserService userService){ this.userService = userService; } /** * 获取指定ID的用户对象. */ @GetMapping("/{id}") public ResponseEntity<User> getUserById(@PathVariable Long id) { User user = userService.findById(id).orElseThrow(() -> new ResourceNotFoundException("User not found")); return ResponseEntity.ok(user); } // 更多接口... } ``` 这里展示了基本 CRUD 操作之一——读取资源的操作模式。当接收到 GET 请求 `/api/users/{id}` 时,会触发上述方法执行查询逻辑并将结果封装成 `ResponseEntity` 返回给前端。 #### 错误处理机制 良好的错误处理也是高质量 API 设计的一部分。可以自定义全局异常处理器来统一管理和标准化不同类型的异常情况下的响应格式。这有助于提高用户体验的一致性和可靠性。 ```java @ControllerAdvice public class GlobalExceptionHandler extends ResponseEntityExceptionHandler { @ExceptionHandler(ResourceNotFoundException.class) protected ResponseEntity<Object> handleResourceNotFound(RuntimeException ex, WebRequest request) { String bodyOfResponse = "This should be application specific"; return handleExceptionInternal(ex, bodyOfResponse, new HttpHeaders(), HttpStatus.NOT_FOUND, request); } // 处理更多异常... } ``` 以上就是利用 Spring Boot 构建简单却功能完备的 RESTful API 所涉及的关键要素概述[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值