【Spring】24 Spring MVC转换服务

文章目录


在Spring MVC中,使用了一个不同的ConversionService来转换来自应用程序属性文件(如application.properties或application.yaml)的值。这意味着Period、Duration和DataSize转换器不可用,并且@DurationUnit和@DataSizeUnit注解将被忽略。

如果你想要定制Spring MVC使用的ConversionService,你可以提供一个WebMvcConfigurer bean,并在其中添加一个addFormatters方法。从这个方法中,你可以注册任何你喜欢的转换器,或者你可以委托给ApplicationConversionService中可用的静态方法。

此外,也可以使用spring.mvc.format.*配置属性来定制转换。当未配置时,将使用以下默认值:

属性名DateTimeFormatter
spring.mvc.format.dateofLocalizedDate(FormatStyle.SHORT)
spring.mvc.format.timeofLocalizedTime(FormatStyle.SHORT)
spring.mvc.format.date-timeofLocalizedDateTime(FormatStyle.SHORT)

示例

假设我们有一个Spring Boot应用,并且想要自定义日期时间格式的转换。我们可以通过配置文件来实现这一点。

首先,在application.properties中添加以下配置:

spring.mvc.format.date=yyyy-MM-dd
spring.mvc.format.time=HH:mm:ss
spring.mvc.format.date-time=yyyy-MM-dd HH:mm:ss

然后,我们创建一个WebMvcConfig类,实现WebMvcConfigurer接口,并在addFormatters方法中注册我们的自定义转换器。

import org.springframework.context.annotation.Configuration;
import org.springframework.format.FormatterRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    @Override
    public void addFormatters(FormatterRegistry registry) {
        registry.addFormatter(new CustomDateTimeFormatter());
    }
}

在这个例子中,我们假设我们已经实现了一个名为CustomDateTimeFormatter的自定义转换器,用于将日期时间格式化为指定的格式。

通过这样的配置,我们就可以自定义Spring MVC中的转换服务,以满足特定的需求。

总结

Spring MVC的ConversionService提供了灵活的配置选项,可以满足不同场景下的需求。通过示例和配置,我们了解了如何自定义Spring MVC中的转换服务,并且提供了一个实际的案例来说明如何实现这一点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值