springboot(六)SpringMVC自动配置

目录

1.Spring MVC auto-confifiguration

2.扩展SpringMVC

3.全面接管SpringMVC

4.修改SpringBoot的默认配置


 

1.Spring MVC auto-confifiguration

2.扩展SpringMVC

以前使用springmvc的时候

 

springboot

编写一个配置类( @Confifiguration ),是 WebMvcConfifigurerAdapter 类型;不能标注 @EnableWebMvc ;
既保留了所有的自动配置,也能用我们扩展的配置;
//使用WebMvcConfigurerAdapter可以来扩展SpringMVC的功能
@Configuration 
public class MyMvcConfig extends WebMvcConfigurerAdapter { 
    @Override 
    public void addViewControllers(ViewControllerRegistry registry) {              
           //super.addViewControllers(registry); 
           //浏览器发送 /hello 请求来到 success 页面
           registry.addViewController("/hello").setViewName("success");
    } 
}
原理:
1 )、 WebMvcAutoConfifiguration SpringMVC 的自动配置类
2 )、在做其他自动配置时会导入; @Import( EnableWebMvcConfifiguration .class)
 
 
 
//从容器中获取所有的WebMvcConfigurer
 
 
//将所有的 WebMvcConfigurer相关配置都来一起调用
 
3 )、容器中所有的 WebMvcConfifigurer 都会一起起作用;
4 )、我们的配置类也会被调用;
 
效果:SpringMVC的自动配置和我们的扩展配置都会起作用;
 

 

3.全面接管SpringMVC

需要在配置类中添加 @EnableWebMvc 即可;
SpringBoot SpringMVC 的自动配置不需要了,所有都是我们自己配置;所有的 SpringMVC 的自动配置都失效了

 

//使用WebMvcConfigurerAdapter可以来扩展SpringMVC的功能
@EnableWebMvc
@Configuration 
public class MyMvcConfig extends WebMvcConfigurerAdapter { 
    @Override 
    public void addViewControllers(ViewControllerRegistry registry) {              
           //super.addViewControllers(registry); 
           //浏览器发送 /hello 请求来到 success 页面
           registry.addViewController("/hello").setViewName("success");
    } 
}

 

原理:
为什么 @EnableWebMvc 自动配置就失效了;
 
1 @EnableWebMvc 的核心
 

@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)
表示:容器中没有这个组件的时候,这个自动配置类才生效
 

2)、 @EnableWebMvc WebMvcConfifigurationSupport 组件导入进来,所以不再导入系统的自动配置;
3)、导入的 WebMvcConfifigurationSupport 只是 SpringMVC 最基本的功能;
 

4.修改SpringBoot的默认配置

模式:
1 )、 SpringBoot 在自动配置很多组件的时候,先看容器中有没有用户自己配置的( @Bean @Component )如
果有就用用户配置的,如果没有,才自动配置;如果有些组件可以有多个( ViewResolver )将用户配置的和自己默
认的组合起来;
2 )、在 SpringBoot 中会有非常多的 xxxConfifigurer 帮助我们进行扩展配置
3 )、在 SpringBoot 中会有很多的 xxxCustomizer 帮助我们进行定制配置

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值