是否有任何Spring Boot文档可用于了解Web mvc配置的工作原理?

时间:2016-02-10 22:15:46

标签: java spring spring-boot jackson

我通过反复试法找到杰克逊自定义解决方案(Jackson2ObjectMapperBuilder enable field visibility ANY)。

还有一些问题:

  • 为什么在删除@EnableWebMvc
  • 之前它不起作用
  • 为什么@Bean如果我将@ConfigurationWebMvcConfigurerAdapter扩展到ObjectMapper, MappingJackson2HttpMessageConverter类,那么它是否无法正常工作?

我将断点放到主ObjectMapper构造函数中,并在简单的spring boot web mvc应用程序中找到

MappingJackson2HttpMessageConverter创建了9次!

@Autowired创建了8次!

为什么呢?为什么ObjectMapper snapshot3d(filename = '../Plots/SnapshotPlots.png', fmt = 'png') 期间没有歧义?

所有这些问题都可以单一表达:是否有任何文档可以了解所有这些配置如何协同工作?

2 个答案:

答案 0 :(得分:3)

  

为什么在我删除@EnableWebMvc

之前它不起作用

当您使用@EnableWebMvc时,您告诉Spring Boot您希望完全控制配置Spring MVC。这在Spring Boot reference documentation中有所说明,“完全控制MVC配置的最简单方法是为您自己的@Configuration提供@EnableWebMvc注释。这将使所有MVC配置保持不变你的手。“

  

我把断点放到主要的ObjectMapper,MappingJackson2HttpMessageConverter构造函数中,并在简单的spring boot web mvc应用程序中找到

     

ObjectMapper创建了9次!

     

MappingJackson2HttpMessageConverter创建了8次!

     

为什么呢?

Spring MVC(和其他人)创建了许多默认的ObjectMapperMappingJackson2HttpMessageConverter实例。然后根据需要自定义或由Spring Boot替换默认实例。

  

为什么在@Autowired for ObjectMapper期间没有歧义?

自动装配仅关心作为Spring bean的类的实例。如果一个实例已经创建并且没有作为Spring bean公开,那么自动装配将对它一无所知。

  

所有这些问题都可以单一表达:是否有任何文档可以了解所有这些配置如何协同工作?

Spring Boot reference guide涵盖了很多内容。除了上面链接的@EnableWebMvc部分之外,the appendix that lists all of the auto-configuration classes也可能会引起关注。最后,为了理解@Autowired之类的工作原理,我建议您阅读Spring Framework reference guide

答案 1 :(得分:0)