EnvirWebMvcConfiguration.kt 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package cn.gygxzc.envir.web.config
  2. import com.fasterxml.jackson.databind.ser.std.ToStringSerializer
  3. import io.swagger.annotations.ApiOperation
  4. import org.springframework.context.annotation.Bean
  5. import org.springframework.context.annotation.Configuration
  6. import org.springframework.context.annotation.Primary
  7. import org.springframework.http.converter.HttpMessageConverter
  8. import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder
  9. import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter
  10. import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry
  11. import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport
  12. import springfox.documentation.builders.ApiInfoBuilder
  13. import springfox.documentation.builders.RequestHandlerSelectors
  14. import springfox.documentation.service.ApiInfo
  15. import springfox.documentation.service.Contact
  16. import springfox.documentation.spi.DocumentationType
  17. import springfox.documentation.spring.web.plugins.Docket
  18. import java.text.SimpleDateFormat
  19. /**
  20. * Created by niantuo on 2018/9/20.
  21. *
  22. */
  23. @Configuration
  24. class EnvirWebMvcConfiguration:WebMvcConfigurationSupport() {
  25. companion object {
  26. const val CONVERTER_NAME = "hookMappingJackson2HttpMessageConverter"
  27. }
  28. override fun addResourceHandlers(registry: ResourceHandlerRegistry) {
  29. registry.let {
  30. it.addResourceHandler("swagger-ui.html")
  31. .addResourceLocations("classpath:/META-INF/resources/")
  32. it.addResourceHandler("/webjars*")
  33. .addResourceLocations("classpath:/META-INF/resources/webjars/")
  34. }
  35. }
  36. override fun configureMessageConverters(converters: MutableList<HttpMessageConverter<*>>) {
  37. converters.add(getConverter())
  38. }
  39. @Bean(CONVERTER_NAME)
  40. fun getConverter(): MappingJackson2HttpMessageConverter {
  41. return MappingJackson2HttpMessageConverter().apply {
  42. this.objectMapper = builder().build()
  43. }
  44. }
  45. @Bean
  46. @Primary
  47. fun builder(): Jackson2ObjectMapperBuilder {
  48. return Jackson2ObjectMapperBuilder().apply {
  49. serializerByType(java.lang.Long::class.java, ToStringSerializer.instance)
  50. serializerByType(java.lang.Long.TYPE, ToStringSerializer.instance)
  51. // date
  52. dateFormat(SimpleDateFormat("yyyy-MM-dd HH:mm:ss"))
  53. }
  54. }
  55. }