Spring的类型转换器

简介: spring有2种类型转换器,一种是propertyEditor,一种是Converter。第一种属性编辑器用法见Spring的属性编辑器的章节。如果2种转换器都适用,那么究竟会适用哪种呢?Spring默认是首先查找PropertyEditor,然后再查找Converter.

spring有2种类型转换器,一种是propertyEditor,一种是Converter。

第一种属性编辑器用法见Spring的属性编辑器的章节。如果2种转换器都适用,那么究竟会适用哪种呢?Spring默认是首先查找PropertyEditor,然后再查找Converter.

用法示例:

public enum SEX {
    /**
     * 异常
     */
    NULL(-1, "异常状态"),
    /**
     * 男
     */
    Male(1, "男"),
    /**
     * 女
     */
    Female(0, "女");
    private final int value;
    private final String desc;
    private static Map<Integer, SysErrorCode> map = Maps.newHashMap();
    static {
        for (SysErrorCode item : SysErrorCode.values()) {
            map.put(item.getIntValue(), item);
        }
    }
    SEX(int v, String d) {
        value = v;
        desc = d;
    }
    public static SysErrorCode genEnumByKey(int key) {
        return map.get(key) == null ? map.get(-1) : map.get(key);
    }
}

定义SEX枚举的Converter

public class Integer2SexConvertor implements Converter<Integer, SEX> {
    @Override
    public SEX convert(Integer enumValueStr) {return SEX.genEnumByKey(enumValueStr);
    }
}

Convert方法,完成类似 "1" -> SEX.Male的转换

配置修改

<mvc:annotation-driven conversion-service="conversionService" />
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
  <property name="converters">
    <set>
      <bean class="****.Integer2SexConvertor" />
    </set>
  </property>
</bean>

 

目录
相关文章
|
Java API Spring
Spring容器如何使用一个注解来指定一个类型为配置类型
Spring容器如何使用一个注解来指定一个类型为配置类型
192 0
|
Java Spring
spring框架之AOP模块(面向切面),附带通知类型---超详细介绍
spring框架之AOP模块(面向切面),附带通知类型---超详细介绍
270 0
|
缓存 Java Spring
详解Spring自定义消息格式转换器及底层源码分析
详解Spring自定义消息格式转换器及底层源码分析
|
前端开发 Java API
Spring Boot之Spring MVC基于注解的控制器(RequestMapping注解类型 重定向与转发 依赖注入)
Spring Boot之Spring MVC基于注解的控制器(RequestMapping注解类型 重定向与转发 依赖注入)
296 0
|
9月前
|
XML Java 测试技术
Spring AOP—通知类型 和 切入点表达式 万字详解(通俗易懂)
Spring 第五节 AOP——切入点表达式 万字详解!
675 25
|
Java 开发者 Spring
Spring高手之路24——事务类型及传播行为实战指南
本篇文章深入探讨了Spring中的事务管理,特别是事务传播行为(如REQUIRES_NEW和NESTED)的应用与区别。通过详实的示例和优化的时序图,全面解析如何在实际项目中使用这些高级事务控制技巧,以提升开发者的Spring事务管理能力。
325 1
Spring高手之路24——事务类型及传播行为实战指南
|
安全 算法 Java
强大!基于Spring Boot 3.3 六种策略识别上传文件类型
【10月更文挑战第1天】在Web开发中,文件上传是一个常见的功能需求。然而,如何确保上传的文件类型符合预期,防止恶意文件入侵,是开发者必须面对的挑战。本文将围绕“基于Spring Boot 3.3 六种策略识别上传文件类型”这一主题,分享一些工作学习中的技术干货,帮助大家提升文件上传的安全性和效率。
672 0
|
XML JSON Java
spring,springBoot配置类型转化器Converter以及FastJsonHttpMessageConverter,StringHttpMessageConverter 使用
spring,springBoot配置类型转化器Converter以及FastJsonHttpMessageConverter,StringHttpMessageConverter 使用
1557 1
|
Java 测试技术 Spring
Spring 支持的建议类型
【8月更文挑战第22天】
147 0
|
缓存 安全 Java
Spring AOP 中两种代理类型的限制
【8月更文挑战第22天】
212 0