1. 程式人生 > 其它 >Spring查缺補漏

Spring查缺補漏

學校在學Spring啥的,記錄一些以前沒有注意到的點,一旦發現就記過來。

使用註解註冊Converter

今天講到Converter,老師完全使用xml配置,但我懶得寫xml,所以我需要一個用註解註冊的辦法。

然後找到了這篇文章:Guide to Spring Type Conversions

使用xml是這樣寫的:

<!-- 建立一個ConversionService Bean,然後向其中新增converters -->
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
    <property name="converters">
        <list>
            <bean class="converter.GoodsConverter"/>
        </list>
    </property>
</bean>
<!-- 新增conversion-service -->
<mvc:annotation-driven conversion-service="conversionService"/>

使用註解的話,你需要在你的某個實現自WebMvcConfigurer的類中重寫預設方法addFormatters,然後通過引數FormatterRegistry來註冊轉換器:

@Configuration
@EnableWebMvc
@ComponentScan({"top.yudoge.springmvc.controller"})
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addFormatters(FormatterRegistry registry) {
        registry.addConverter(new DateConverter());
    }

}

在Spring中FormatterConverter沒有什麼繼承關係,不知道為什麼他們選擇讓開發者在addFormatters方法中註冊Converter,這不是很讓人迷惑嗎??