springboot扩展springmvc的配置
程序员文章站
2022-06-13 15:46:28
...
springboot扩展springmvc
springboot扩展springmvc的配置、都知道springboot的核心是自动装配、
如果要在不破坏springboot的springmvc自动装配、配置的情况下、我们可以自己写一个配置类去实现WebMvcConfigurer
类
在springboot的自动装配的情况下去扩展springmvc的新功能
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {
//视图跳转、
@Override
public void addViewControllers(ViewControllerRegistry registry) {
//浏览器访问location:8080/aa ---> 他会找到名为index的视图名字的html
registry.addViewController("/aa").setViewName("index");
}
}
实现了WebMvcConfigurer
接口就可以在springboot中扩展springmvc的配置、
@EnableWebMvc注解说明
如果你在自定义的springmvc的MyMvcConfig
配置类上加上了这个注解@EnableWebMvc
加上了这个注解后springboot对springmvc的自动装配全部失效、
为什么?
我们可以看一下这个@EnableWebMvc
注解里面配置了什么
@EnableWebMvc注解中的内容
|
@Import(DelegatingWebMvcConfiguration.class)
这个注解里面导入了一个类
DelegatingWebMvcConfiguration 类的内容
|
public class DelegatingWebMvcConfiguration extends WebMvcConfigurationSupport
到这可以得出一个结论、说白了这个注解@EnableWebMvc就等于它、
WebMvcConfigurationSupport已经被spring托管了、简单来说就是
WebMvcConfigurationSupport类已经在容器中了。
在看一下WebMvcAutoConfiguration
: 自动装配的类
WebMvcAutoConfiguration 类 、这个类就是自动装配配置的类这个了中会自动装配webmvc的全部配置
类中有一个注解
|
@ConditionalOnMissingBean(WebMvcConfigurationSupport.class) : 这个注解是、个人理解的是:在springboot自动装配时spring的容器中没有这个
WebMvcConfigurationSupport类时这个WebMvcAutoConfiguration配置类生效、如
果在程序走到了这个自动装配的类时、发现容器中有这个类、此时这个
WebMvcAutoConfiguration自动装配的类失效。
简单来说就是判断容器中是否有这个类、’有‘、自动装配配置类失效、’没有‘、自动
装配配置类有效
最后得出一个结论、就是加上这个@EnableWebMvc注解它会将这个WebMvcConfigurationSupport类注入到容器中、等程序走到自动装配的类时、发现容器中有这个类、此时WebMvcAutoConfiguration类失效、springboot将不会在自动装配springmvc的配置了、由将加了@EnableWebMvc这这个注解的配置类全权配置
推荐阅读
-
SpringBoot深入理解之内置web容器及配置的总结
-
SpringMVC 中配置 Swagger 插件的教程(分享)
-
SpringMVC+ZTree实现树形菜单权限配置的方法
-
springboot配置多数据源的实例(MongoDB主从)
-
Springboot 配置RabbitMQ文档的方法步骤
-
springboot读取自定义配置文件节点的方法
-
从SpringMVC迁移到Springboot的方法步骤
-
SpringBoot入坑笔记之spring-boot-starter-web 配置文件的使用
-
springboot配置多数据源的实例(MongoDB主从)
-
SpringMVC+ZTree实现树形菜单权限配置的方法