FormattingConversionService类的使用

它是什么

Spring MVC框架中用来解析方法参数的service类。

它有什么用

当我们在Spring的配置文件中添加时,如果我们没有明确指定conversion-service属性的值,那么Spring MVC框架会自动使用默认的FormattingConversionService类,它包含了常用的转换方法,将字段转换成标准的JDK类型,另外,如果我们需要date/time的转换器,可以在类路径下引入Joda Time的时间库,它会被默认识别。

使用场合

如果我们不需要在字段绑定期间使用自定义的类型转换器,那么我们完全可以使用默认的类。

如果我们需要自定义格式转换器类的话,我们可以继承该类,并将注解中conversion-service属性的值设为我们自己的类(使用类路径引入)。

如果使用的是SpringBoot自动装配的话,则需要在自定义的类上加上@Configuration注解,并使用DateTimeFormatterRegistrar注册器注册我们自定义的日期解析器。然后使用@Autowired添加到Spring容器中。

springmvc注解学习

annotation-driven

配置注解驱动的Spring MVC控制器编程模型。

可选参数:

  • conversion-service:指定字段转换服务
  • validator:指定自定义的校验类,用来校验控制器中的model对象,默认使用JSR-303校验

resources

配置静态资源的处理器,比如说图片、js、css,通过对缓存头进行优化,提升浏览器的加载速度。允许Spring资源处理器能够识别任何指定路径下的静态资源。

可选参数:

  • mapping:必须,指定URL的映射方式,基于当前的Servlet上下文,比如/resources/**则表示需要在url中加上resources,然后追加静态资源相对于根路经的目录结构路径。
  • location:必须,指定静态资源的物理路径,多个路径可以使用逗号隔开,放在前面的会被优先读取(如果有两个同名的文件,会优先读取放在前面的路径下的文件),例如:/,classpath:/META-INF/public-web-resources/,将会读取位于web应用根路径下的静态资源以及类路径下的所有Jar包中/META-INF/public-web-resources目录下的文件,而web应用根路径下的文件优先级更高。
  • cache-period:可选,指定静态资源的缓存策略。以秒为单位。默认情况下不会发送任何缓存头,而是取决于文件上次修改的时间戳。如果将该属性的值设为0,则会发送值为prevent-cacheing的缓存头。如果是大于0的值,则会发送max-age为该值的缓存头。
  • order:可选,指定资源处理器的顺序。

default-servlet-handler

用来配置处理静态资源的处理器(handler),通过将请求重定向到容器默认的servlet。使用这个处理器允许/映射与DispatcherServlet一起使用,同时仍利用Servlet容器提供静态资源服务。

可用属性:

  • default-servlet-name:可以重定向客户端静态资源请求的默认Servlet。默认的处理器在启动时会自动检测容器默认的Servlet(通过一个预定义的名字列表)。只有在默认但Servlet无法被检测到的情况下,才需要明确指定默认Servlet的名字。

  • interceptors:注册自定义的拦截器(父标签)

    • interceptor:自定义拦截器必须继承HandlerInterceptor类或者实现WebRequestInterceptor接口。

      可用属性

      • mapping:
        • path:指定被拦截的url路径,例如/myPath或者/myPath/**
        • ref:指定bean的引用。

view-controller

用来定义渲染返回视图的简单控制器

可用属性:

  • path:必须。被映射的URL路径。
  • view-name:可选。被渲染的视图名,如果不指定,则通过当前HttpServletRequest对应的DispatcherServlet的RequestToViewNameTranslator来决定。