spring boot注册一个全局的类型转换器,转换表单中的string 到Date
@Configuration
public class WebConfig {
// IMPORTANT: keep the order
private final static String[] dateFormats = {
"EEE, d MMM yyyy HH:mm:ss z",
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
"yyyy-MM-dd HH:mm:ss.SSSZ",
"yyyy-MM-dd HH:mm:ssZ",
"yyyy-MM-dd HH:mm:ss.SSS",
"yyyy-MM-dd HH:mm:ss"};
@Autowired
private RequestMappingHandlerAdapter handlerAdapter;
@PostConstruct
public void addConversionConfig() {
ConfigurableWebBindingInitializer initializer = (ConfigurableWebBindingInitializer)handlerAdapter.getWebBindingInitializer();
if (initializer.getConversionService() != null) {
GenericConversionService genericConversionService = (GenericConversionService)initializer.getConversionService();
genericConversionService.addConverter(new StringToDateConverter());
}
}
public class StringToDateConverter implements Converter<String, Date> {
@Override
public Date convert(String dateString) {
Assert.hasText(dateString, "Null or emtpy date string");
// Supported date formats:
// EEE, d MMM yyyy HH:mm:ss z e.g. Fri, 20 Aug 2016 08:45:15 GMT
// yyyy-MM-dd HH:mm:ss.SSSZ e.g. 2016-08-19 17:36:20.235+0800
// yyyy-MM-dd'T'HH:mm:ss.SSSZ e.g. 2016-08-19T17:36:20.235+0800
// yyyy-MM-dd HH:mm:ssZ e.g. 2016-08-19 17:36:20+0800
// yyyy-MM-dd HH:mm:ss.SSS (UTC time), e.g. 2016-08-19 09:36:20.235
// yyyy-MM-dd HH:mm:ss (UTC time), e.g. 2016-08-19 09:36:20
Date date = DateUtils.parseDate(dateString, dateFormats);
if (date == null) {
String errMsg = String.format("Failed to convert [%s] to [%s] for value '%s'", String.class.toString(), Date.class.toString(), dateString);
throw new IllegalArgumentException(errMsg);
}
return date;
}
}
}
分享到:
相关推荐
《Spring Boot参考指南》是Spring Boot开发者的重要参考资料,它详细阐述了Spring Boot框架的核心特性、配置方式、自动配置原理以及如何构建微服务应用等关键知识点。Spring Boot是Java开发领域中一个极其流行的轻量...
在现代Web应用开发中,Vue.js和Spring Boot的结合已经成为了一种常见的前后端分离架构模式。这本《Vue Spring Boot前后端分离开发实战》的源码提供了深入学习和实践这一技术栈的机会。以下是对其中涉及知识点的详细...
- 返回JSON数据:Spring Boot可以集成Jackson等JSON转换框架来简化数据的序列化和反序列化。 - 全局异常处理:Spring Boot允许开发者配置全局异常处理器,从而集中处理项目中的异常。 - 数据库操作:Spring Boot提供...
在本文中,我们将深入探讨如何在Spring Boot应用中集成Apache Kafka。Kafka是一个高吞吐量、分布式的发布/订阅消息系统,常用于构建实时数据管道和流处理应用程序。Spring Boot是一个简化Spring应用开发的框架,它...
3. **类型安全和重构友好**:由于使用了泛型,JavaConfig 在获取 Bean 时提供了类型安全的保障,减少了强制类型转换和基于字符串的查找。 在实际开发中,JavaConfig 与 XML 配置可以混用,以达到最佳效果。Spring ...
Spring Boot内置了Jackson库支持JSON序列化和反序列化,方便在Java对象和JSON字符串之间转换。 4. **错误处理和异常处理**:为了提供健壮的服务,我们需要处理可能出现的网络错误、API调用失败等情况。Spring Boot...
在IT行业中,Spring Boot是一个非常流行的微服务框架,它简化了Spring应用的初始化和配置过程。而LDAP(Lightweight Directory Access Protocol)则是一种用于存储和检索分布式目录信息的标准协议,常用于用户身份...
接下来,为了让Spring Boot能够识别并使用我们自定义的消息转换器,我们需要在配置类中注册它。这通常是在`@Configuration`注解的类中通过`WebMvcConfigurer`接口的`extendMessageConverters`方法完成的。 ```java ...
Spring Boot 中的几种注入方法 在 Spring Boot 中,注入是一种非常重要的机制,用于将 bean 对象注入到其他 bean 对象中,以便实现松耦合和高内聚的设计目标。下面我们将对 Spring Boot 中的几种注入方法进行详细的...
Java_Apache Camel Spring Boot示例是一个综合性的项目,展示了如何在Spring Boot应用程序中集成Apache Camel框架。Apache Camel是一个流行的开源框架,它简化了企业级集成(EIP,Enterprise Integration Patterns)...
在本项目实战中,我们将深入探讨Spring Boot与Thymeleaf的集成应用,这是一个流行的Java Web开发框架组合,用于快速构建高效、现代化的Web应用程序。Spring Boot简化了Spring的配置,而Thymeleaf则是一个功能强大的...
用于声明一个方法将返回的对象注册为Spring Bean,可以进行更复杂的初始化逻辑。 13. **@Service** 标记服务层类,通常配合@Repository和@Controller使用,提供业务逻辑。 14. **@Repository** 标记数据访问层...
此外,Spring Boot还支持JSON序列化和反序列化,通过Jackson库,可以方便地在Java对象和JSON格式之间进行转换。 为了实现接口的测试,Spring Boot提供了一整套测试工具,包括`@SpringBootTest`、`@WebMvcTest`等...
在本项目中,"spring boot新搭建完整项目"是一个基于Spring Boot框架构建的全新应用程序。Spring Boot是Spring框架的一个扩展,旨在简化Java应用的初始设置和常规配置,使其能够快速开发独立运行的、生产级别的应用...
5. **响应转换器(Response Converters)**:Spring Boot 默认支持 JSON 格式的响应,通过 `Jackson` 库将 Java 对象转化为 JSON 字符串。 6. **安全控制(Security)**:Spring Security 提供了强大的安全解决方案...
《Spring Boot基础与实战——以spring-boot-demo项目为例》 Spring Boot是Java开发中的一个热门框架,它由Pivotal团队提供,旨在简化Spring应用的初始搭建以及开发过程。Spring Boot通过提供开箱即用的设置,使得...
### Spring Boot参考指南知识点概述 #### 一、Spring Boot 文档概述 - **关于本文档**:本指南旨在提供Spring Boot全面的使用手册,适用于初学者到进阶开发者。 - **获取帮助**:介绍了如何获得Spring Boot相关的...
### Spring Boot中文参考指南知识点概览 #### 一、Spring Boot 概述 - **Spring Boot** 是一种简化新Spring应用的初始搭建以及后续开发的框架。它旨在通过提供默认配置来简化设置过程,使开发者能够专注于应用的...
综上所述,这个示例提供了Spring Boot和JPA结合使用的基本用法,包括多数据库支持、存储过程调用、原生SQL查询以及结果转换为DTO的实践。这对于学习和理解如何在Spring Boot应用中进行高效、灵活的数据库操作是非常...