- Springboot中的MVC自动配置
- ContentNegotiatingViewResolver (组合所有的视图解析器的)和 BeanNameViewResolver(视图解析器:根据方法的返回值得到视图对象(View),视图对象决定如何渲染(转发?重定向?)).
自己定制:自己给容器中添加一个视图解析器;就会自动的将其组合进来。关键字:ViewResolver - 静态资源路径/静态首页访问/图标设置
- 自动注册了 Converter(类型转换器,数据传输过程中按需求自动转换), GenericConverter, Formatter(格式化器,可自己在文件中配置)
- HttpMessageConverter(SpringMVC用来转换Http请求和响应的)
- MessageCodesResolver (定义错误代码生成规则)
- ConfigurableWebBindingInitializer(初始化数据转换功能)
- 总结:springbboot自动配置了MVC的多种功能,如需添加自己的,只需用@Bean/@Component把我们的组件加入容器中即可
- ContentNegotiatingViewResolver (组合所有的视图解析器的)和 BeanNameViewResolver(视图解析器:根据方法的返回值得到视图对象(View),视图对象决定如何渲染(转发?重定向?)).
- SpringMVC拓展
- 自己编写一个配置类(@Configuration),继承WebMvcConfigurerAdapter类型(MVC拓展功能的接口),之后根据自己的需要重写接口的方法即可;不能标注@EnableWebMvc
- 原理:1.WebMvcAutoConfiguration是SpringMVC的自动配置类,所以继承他就能完成自己的自动配置。 2.WebMvcAutoConfiguration中有@Import(EnableWebMvcConfiguration.class)。 3.EnableWebMvcConfiguration类的父类是 DelegatingWebMvcConfiguration类,这个类有个标注 @Autowired注解的setConfigurers方法,这个方法的作用就是把自动装配相关的容器遍历一遍,拿出里面的数据。4.这样容器中的所有配置都有启用,我们写的也就可以了。
- 接管SpringMVC(放弃MVC的自动配置):添加@EnableWebMvc注解即可
原理:@EnableWebMvc→@Import(DelegatingWebMvcConfiguration.class)→DelegatingWebMvcConfiguration extends WebMvcConfigurationSupport→@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)无组件时才生效
SpringBoot自学日志-06-SpringMVC的配置原理
最新推荐文章于 2024-10-11 13:05:16 发布