`
杰wang
  • 浏览: 13897 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

spring boot 注册类型转换

    博客分类:
  • java
阅读更多
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-Reference-Guide, Spring Boot Reference Guide中文翻译 -《Spring Boot参考指南》.zip

    《Spring Boot参考指南》是Spring Boot开发者的重要参考资料,它详细阐述了Spring Boot框架的核心特性、配置方式、自动配置原理以及如何构建微服务应用等关键知识点。Spring Boot是Java开发领域中一个极其流行的轻量...

    《Vue Spring Boot前后端分离开发实战》源码Vue+Spring Boot前后端分离开发实战教学课件(PPT)

    在现代Web应用开发中,Vue.js和Spring Boot的结合已经成为了一种常见的前后端分离架构模式。这本《Vue Spring Boot前后端分离开发实战》的源码提供了深入学习和实践这一技术栈的机会。以下是对其中涉及知识点的详细...

    Spring Boot 学习笔记完整教程.pdf

    - 返回JSON数据:Spring Boot可以集成Jackson等JSON转换框架来简化数据的序列化和反序列化。 - 全局异常处理:Spring Boot允许开发者配置全局异常处理器,从而集中处理项目中的异常。 - 数据库操作:Spring Boot提供...

    spring boot集成kafka

    在本文中,我们将深入探讨如何在Spring Boot应用中集成Apache Kafka。Kafka是一个高吞吐量、分布式的发布/订阅消息系统,常用于构建实时数据管道和流处理应用程序。Spring Boot是一个简化Spring应用开发的框架,它...

    Spring Boot 面试必备手册

    3. **类型安全和重构友好**:由于使用了泛型,JavaConfig 在获取 Bean 时提供了类型安全的保障,减少了强制类型转换和基于字符串的查找。 在实际开发中,JavaConfig 与 XML 配置可以混用,以达到最佳效果。Spring ...

    spring boot集成ldap

    在IT行业中,Spring Boot是一个非常流行的微服务框架,它简化了Spring应用的初始化和配置过程。而LDAP(Lightweight Directory Access Protocol)则是一种用于存储和检索分布式目录信息的标准协议,常用于用户身份...

    基于spring boot实现根据经纬度坐标返回所在行政区域

    Spring Boot内置了Jackson库支持JSON序列化和反序列化,方便在Java对象和JSON字符串之间转换。 4. **错误处理和异常处理**:为了提供健壮的服务,我们需要处理可能出现的网络错误、API调用失败等情况。Spring Boot...

    SpringBoot中自定义消息转换器示例源码

    接下来,为了让Spring Boot能够识别并使用我们自定义的消息转换器,我们需要在配置类中注册它。这通常是在`@Configuration`注解的类中通过`WebMvcConfigurer`接口的`extendMessageConverters`方法完成的。 ```java ...

    关于spring boot中几种注入方法的一些个人看法

    Spring Boot 中的几种注入方法 在 Spring Boot 中,注入是一种非常重要的机制,用于将 bean 对象注入到其他 bean 对象中,以便实现松耦合和高内聚的设计目标。下面我们将对 Spring Boot 中的几种注入方法进行详细的...

    Java_Apache Camel Spring Boot示例.zip

    Java_Apache Camel Spring Boot示例是一个综合性的项目,展示了如何在Spring Boot应用程序中集成Apache Camel框架。Apache Camel是一个流行的开源框架,它简化了企业级集成(EIP,Enterprise Integration Patterns)...

    spring boot+thymeleaf项目实战

    在本项目实战中,我们将深入探讨Spring Boot与Thymeleaf的集成应用,这是一个流行的Java Web开发框架组合,用于快速构建高效、现代化的Web应用程序。Spring Boot简化了Spring的配置,而Thymeleaf则是一个功能强大的...

    Spring Boot 常用注解.rar

    用于声明一个方法将返回的对象注册为Spring Bean,可以进行更复杂的初始化逻辑。 13. **@Service** 标记服务层类,通常配合@Repository和@Controller使用,提供业务逻辑。 14. **@Repository** 标记数据访问层...

    spring-boot项目服务端

    此外,Spring Boot还支持JSON序列化和反序列化,通过Jackson库,可以方便地在Java对象和JSON格式之间进行转换。 为了实现接口的测试,Spring Boot提供了一整套测试工具,包括`@SpringBootTest`、`@WebMvcTest`等...

    spring boot新搭建完整项目

    在本项目中,"spring boot新搭建完整项目"是一个基于Spring Boot框架构建的全新应用程序。Spring Boot是Spring框架的一个扩展,旨在简化Java应用的初始设置和常规配置,使其能够快速开发独立运行的、生产级别的应用...

    Spring Boot-RESTfull API入门.rar

    5. **响应转换器(Response Converters)**:Spring Boot 默认支持 JSON 格式的响应,通过 `Jackson` 库将 Java 对象转化为 JSON 字符串。 6. **安全控制(Security)**:Spring Security 提供了强大的安全解决方案...

    spring-boot-demo

    《Spring Boot基础与实战——以spring-boot-demo项目为例》 Spring Boot是Java开发中的一个热门框架,它由Pivotal团队提供,旨在简化Spring应用的初始搭建以及开发过程。Spring Boot通过提供开箱即用的设置,使得...

    Spring Boot参考指南.pdf

    ### Spring Boot参考指南知识点概述 #### 一、Spring Boot 文档概述 - **关于本文档**:本指南旨在提供Spring Boot全面的使用手册,适用于初学者到进阶开发者。 - **获取帮助**:介绍了如何获得Spring Boot相关的...

    word、excel、ppt转pdf,spring boot小demo

    本项目是一个基于Spring Boot框架实现的实用工具,用于将Microsoft Office的三种常见文件格式——Word(.docx)、Excel(.xlsx)和PowerPoint(.pptx)转换为PDF格式。这个小Demo提供了完整的功能,无需任何水印,...

    spring-boot中文参考指南

    ### Spring Boot中文参考指南知识点概览 #### 一、Spring Boot 概述 - **Spring Boot** 是一种简化新Spring应用的初始搭建以及后续开发的框架。它旨在通过提供默认配置来简化设置过程,使开发者能够专注于应用的...

Global site tag (gtag.js) - Google Analytics