SpringBoot中@EnableWebMvc使默认的SpringMvc自动配置失效的原因(源码分析)

在配置类上加上@EnableWebMvc注解会使springboot默认为springmvc扩展的功能(如视图解析器等)失效

  1. 首先是EnableWebMvc的源码,在注解import里导入了DelegatingWebMvcConfiguration类

在这里插入图片描述

  1. DelegatingWebMvcConfiguration的源码,该类继承了WebMvcConfigurationSupport类在这里插入图片描述
  2. 而在springboot的自动配置机制中,关于springmvc的自动配置类是WebMvcAutoConfiguration,而这个配置类的注解@ConditionalOnMissingBean({WebMvcConfigurationSupport.class})会判断容器是否存在WebMvcConfigurationSupport类,如果存在,则当前配置类不生效;即如果容器中存在WebMvcConfigurationSupport类,则springboot关于springmvc的自动配置类不会生效。
    在这里插入图片描述
    4.在使用@EnableWebMvc注解后,springboot里关于springmvc自动配置类失效,关于springmvc仅仅可以使用基本的设置,即DelegatingWebMvcConfiguration里设置的方法;
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【资源说明】 1、基于SpringBoot+ORM-Mybatis+SpringMVC和多种组件构建的企业信息化开发基础平台源码+项目说明.zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 4、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于SpringBoot+ORM-Mybatis+SpringMVC和多种组件构建的企业信息化开发基础平台源码+项目说明.zip ## 一、项目简介 JeePlatform项目是一款以SpringBoot为核心框架,集ORM框架Mybatis,Web层框架SpringMVC和多种开源组件框架而成的一款通用基础平台 代码结构图: ``` ├─jeeplatform----------------------------父项目,公共依赖 │ │ │ ├─jeeplatform-admin--------------------------基础管理系统 │ │ │ ├─jeeplatform-cms-----------------------内容管理系统 │ │ │ ├─jeeplatform-common--------------------------通用工程 │ │ │ ├─jeeplatform-oa--------------------------协调办公系统 | | | |─jeeplatform-provider-----------------------平台服务心 │ │ │ ├─jeeplatform-provider-api-----------------------平台服务API | | │ ├─jeeplatform-sso-cas-----------------------CAS单点登录服务端 │ │ │ ├─jeeplatform--sso-oauth2---------------OAuth2.0单点登录服务端 │ │ ``` ## 二、系统设计 ### 系统管理(模块名称jeeplatform-admin) 管理系统登录页面 ps:登录链接一般为:http://127.0.0.1:8080/jeeplatform/login ![Image text](https://gitee.com/362330721/jeeplatform/raw/master/screenshot/管理系统登录页面.png) 管理系统主页前端,可以适配移动端页面 ![Image text](https://gitee.com/362330721/jeeplatform/raw/master/screenshot/适配移动端.png) 管理系统主页采用开源前端模板,具有换肤功能 ![Image text](https://gitee.com/362330721/jeeplatform/raw/master/screenshot/系统主页墨绿主题.png) ![Image text](https://gitee.com/362330721/jeeplatform/raw/master/screenshot/系统主页清新主题.png) 管理系统主页,获取用户具有的权限,显示菜单 ![Image text](https://gitee.com/362330721/jeeplatform/raw/master/screenshot/管理系统主页.png) 角色进行授权,只有超级管理员才具有权限 ![Image text](https://gitee.com/362330721/jeeplatform/raw/master/screenshot/角色授权.png) 角色进行配置,可以学习一下RBAC(基于角色的权限控制) ![Image text](https://gitee.com/362330721/jeeplatform/raw/master/screenshot/角色配置.png) 使用JavaEmail插件实现邮件发送,记得需要开启SSl验证 ![Image text](https://gitee.com/362330721/jeeplatform/raw/master/screenshot/发送邮件.png) ### OA管理系统(待开发) 接入CAS Server实现单点登录 ### CMS管理系统(待开发) 暂时接入Oauth2.0实现的单点登录系统 ## 四、业务方案 ### 系统管理通用功能 - [ ] 单点登录: OAuth2.0+JWT单点登录
项目描述 在上家公司自己集成的一套系统,用了两个多月的时间完成的:Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级开发系统 Springboot作为容器,使用mybatis作为持久层框架 使用官方推荐的thymeleaf做为模板引擎,shiro作为安全框架,主流技术 几乎零XML,极简配置 两套UI实现(bootstrap+layer ui),可以自由切换 报表后端采用技术: SpringBoot整合SSM(Spring+Mybatis-plus+ SpringMvc),spring security 全注解式的权限管理和JWT方式禁用Session,采用redis存储token及权限信息 报表前端采用B ootstrap框架,结合Jquery Ajax,整合前端Layer.js(提供弹窗)+Bootstrap-table(数据列表展示)+ Bootstrap-Export(各种报表导出SQL,Excel,pdf等)框架,整合Echars,各类图表的展示(折线图,饼图,直方图等),使用了layui的弹出层、菜单、文件上传、富文本编辑、日历、选项卡、数据表格等 Oracle关系型数据库以及非关系型数据库(Redis),Oracle 性能调优(PL/SQL语言,SQL查询优化,存储过程等),用Redis做间缓存,缓存数据 实现异步处理,定时任务,整合Quartz Job以及Spring Task 邮件管理功能, 整合spring-boot-starter-mail发送邮件等, 数据源:druid 用户管理,菜单管理,角色管理,代码生成 运行环境 jdk8+oracle+redis+IntelliJ IDEA+maven 项目技术(必填) Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis 数据库文件 压缩包内 jar包文件 maven搭建 Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理系统 http://localhost:/8080/login admin admin Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理系统Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理系统Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理系统Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理系统Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理系统

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值