@Convert 设置自定义属性转换器 AttributeConverter

通过 @Convert 注解指定自定义转换器,可用于实体属性类型与数据库字段类型之间的相互转换,便于将数据存储至数据库或从数据库读取数据。

@Repeatable(Converts.class)
@Target({METHOD, FIELD, TYPE})
@Retention(RUNTIME)
public @interface Convert {

  Class converter() default void.class;
  
  String attributeName() default "";
  
  boolean disableConversion() default false;
自定义转换器
  1. 添加@Converter注解,标识为转换器
  2. 实现 AttributeConverter<X, Y> 接口,X 为实体属性类型,Y 为数据库字段类型
  3. 重写 convertToDatabaseColumn()convertToEntityAttribute()方法

举例:

原本的类型与数据库字段的类型正向反向转换

实体类

@Converter
public class RuleConverter implements AttributeConverter<CouponTemplateRule, String> {
    @Override
    public String convertToDatabaseColumn(TemplateRule rule) {
        return JSON.toJSONString(rule);
    }

    @Override
    public TemplateRule convertToEntityAttribute(String rule) {
        return JSON.parseObject(rule, TemplateRule.class);
    }
}

枚举类

@Converter
public class ProductLineConverter implements AttributeConverter<ProductLine, Integer> {

    @Override
    public Integer convertToDatabaseColumn(ProductLine productLine) {
        return productLine.getCode();
    }

    @Override
    public ProductLine convertToEntityAttribute(Integer code) {
        return ProductLine.of(code);
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring MVC中,您可以使用自定义类型转换器来处理特定类型之间的转换。要设置自定义类型转换器,您需要执行以下步骤: 1. 创建一个实现了 `Converter<S, T>` 接口的自定义类型转换器类。其中,S 是源类型,T 是目标类型。该接口要求实现 `convert()` 方法,用于执行实际的类型转换逻辑。 ```java public class CustomConverter implements Converter<String, Date> { @Override public Date convert(String source) { // 实现自定义的类型转换逻辑 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); try { return dateFormat.parse(source); } catch (ParseException e) { throw new IllegalArgumentException("Invalid date format"); } } } ``` 2. 在Spring MVC配置中注册自定义类型转换器。可以通过编程方式或者使用XML配置进行注册。 a. 编程方式: ```java @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addFormatters(FormatterRegistry registry) { registry.addConverter(new CustomConverter()); } } ``` b. XML配置方式: ```xml <mvc:annotation-driven conversion-service="conversionService" /> <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property name="converters"> <set> <bean class="com.example.CustomConverter" /> </set> </property> </bean> ``` 3. 在您的控制器方法中使用目标类型作为参数。Spring MVC会自动调用适当的类型转换器将请求参数转换为目标类型。 ```java @Controller public class MyController { @RequestMapping("/example") public String handleRequest(@RequestParam("date") Date date) { // 处理转换后的日期对象 return "example"; } } ``` 通过以上步骤,您就可以设置自定义的类型转换器来处理Spring MVC中的类型转换。希望对您有所帮助!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值