(七)SpringBoot的MVC自动配置
2020-01-13 08:37
483 查看
文章目录
Spring MVC配置
Spring Boot提供了Spring MVC的自动配置类WebMvcAutoConfiguration。
组件配置类
WebMvcAutoConfigurationAdapter是MVC自动配置类中的静态类,它也是一个配置类,这个类中定义了MVC的一些组件,并提供了默认的配置。那么我们怎么才能对这些配置进行扩展呢?事实上一些组件中提供了相应的方法,它们将在程序启动后扫描容器中是否有用户定制的组件,如果有,就将其与基本配置组合起来,再进行加载;否则就以默认配置进行加载。
程序源码
定制组件配置类
如果在项目中,我们需要定制的MVC组件很多,又不想分别创建每一个组件再加入容器。Spring Boot为我们提供了一个更便捷的方式:通过WebMvcConfigurerAdapter适配器类,我们可以定制自己的组件配置类,并只给其中需要的组件提供方法实现。WebMvcAutoConfigurationAdapter类在加载时会将EnableWebMvcConfiguration类导入,它的父类提供的setConfigurers()方法会在程序启动后扫描到我们定制的组件配置类,并将它们与基本配置组合,再进行加载。
程序源码
定制视图映射组件
定制组件配置类:
@Component public class MyWebMvcConfig extends WebMvcConfigurerAdapter{ @Override public void addViewControllers(ViewControllerRegistry registry) { // 浏览器请求/main时响应/index registry.addViewController("/main").setViewName("/index"); } }
定制拦截器组件
拦截器类:
class MyHandlerInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { return false; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { } }
定制组件配置类:
@Component public class MyWebMvcConfig extends WebMvcConfigurerAdapter{ @Override public void addInterceptors(InterceptorRegistry registry) { // 将拦截器加入组件配置,并声明拦截请求路径。 registry.addInterceptor(new MyHandlerInterceptor()).addPathPatterns("/**") .excludePathPatterns("/main").excludePathPatterns("index"); } }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- spring boot spring mvc 自动配置类
- springboot webmvc 自动配置
- SpringBoot 自动配置
- SpringBoot自动配置原理
- Spring Boot自动配置类
- Spring-Boot之基础 POM 文件和自动配置(maven)
- 三、SpringBoot——自动配置原理
- SpringBoot学习之自动配置原理
- 开发过程中Spring Boot自动配置功劳不小,原理成面试官常问问题
- SpringBoot中mybatis配置自动转换驼峰标识没有生效
- springboot自动配置声明
- 【Spring Boot实战】二 -- 自动配置和自定义配置
- SpringBoot配置属性之MVC
- Spring Boot 自动配置理解 以及实现自定义Starter
- Spring Boot核心原理-自动配置
- 面试问题spring boot自动配置是怎么实现的
- spring-boot自动配置
- SpringBoot自动配置原理分析
- (一)Spring-boot 自动配置
- 四、接管SpringBoot对Activiti的数据源自动配置