Spring Web MVC框架(八) 配置Spring Web MVC

本文深入探讨Spring Web MVC的配置,涵盖Java配置和XML命名空间的启用,包括默认配置、自定义配置、类型转换、验证、拦截器、视图控制器等关键功能。同时讲解了资源处理如静态资源和版本控制,以及消息转换和高级自定义配置的实现方法。
摘要由CSDN通过智能技术生成

这一篇文章对应于Spring参考文档 Configuring Spring MVC,讲的是Spring Web MVC各部分的配置方法,包括Java代码配置和XML文件配置以及MVC命名空间的使用方法。

启用MVC Java配置和XML命名空间

默认配置

要启用MVC Java配置(@Controller等各种注解)和XML命名空间,如果使用的是Java配置,在配置类上再添加@EnableWebMvc注解即可。

@Configuration
@EnableWebMvc
public class WebAppConfig {
   

}

如果使用XML配置文件的话,添加下面一行即可。

<mvc:annotation-driven/>

不论使用哪种方式,都会在Spring中注册一些组件来提供最基本的MVC功能。这些功能在文档中说的很清楚。我简单翻译了一下:

上面的配置会注册一个RequestMappingHandlerMapping,一个RequestMappingHandlerAdapter和一个ExceptionHandlerExceptionResolver来提供注解控制器和注解方法(比如@RequestMapping和@ExceptionHandler等)处理请求的功能。

还会启用以下功能:

  • 通过一个ConversionService实例,来进行Spring 3 方式的类型转换及数据绑定支持。
  • @NumberFormat格式化数字字段的支持
  • @DateTimeFormat格式化DateCalendarLong、JodaTime类型字段的支持。
  • 在控制器方法上使用@Valid验证Bean的支持,如果检测到JSR-303 Bean验证的实现。
  • 一组HttpMessageConverter,用于在字符串和所需Java类型之间进行类型转换,具体的列表参见Spring文档 22.16.1. Enabling the MVC Java Config or the MVC XML Namespace

通过这些默认配置,我们即可开始最基本的Spring MVC使用。

自定义配置

上面提供了最基本的配置。如果需要自定义某些配置也可以。如果使用Java配置的话,让配置类实现WebMvcConfigurer接口,更常用的办法是继承WebMvcConfigurerAdapter基类,通过重写基类中的方法即可配置相关功能。

@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
   

        //有很多个方法可以重写,来提供自定义功能

}

如果使用XML配置文件,通过IDE的自动补全功能查看一下<mvc:annotation-driven/>有哪些子属性和子元素。

类型转换和格式化

默认情况下Spring注册了Number(包括所有基本数字类型)和java.util.Date的类型转换和格式化功能。要提供类型的转换和格式化功能,就需要自己注册相应的类型转换器和格式化器。

如果使用Java配置的话,重写addFormatters(FormatterRegistry registry)方法并添加相应功能即可。

@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
   

    @Override
    public void addFormatters(FormatterRegistry registry) {
        // Add formatters and/or converters
    }

}

如果使用XML配置的话,需要注册一个ConversionService,然后添加到<mvc:annotation-driven>节点中。

    <mvc:annotation-driven conversion-service="conversionService"/>

    <bean id="conversionService"
            class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
        <property name="converters">
            <set>
                <bean class="org.example.MyConverter"/>
            </set>
        </property>
        <property name="formatters">
            <set>
                <bean class="org.example.MyFormatter"/>
                <bean class=
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值