CompanyManager项目简介
该项目的搭建环境:
项目管理:maven
框架:spring、springmvc、mybatis、easyui
数据:mysql
主要用途:实现了用户管理、菜单管理、部门管理、理财管理、理财报表、待办管理、字典管理等多个功能,可作为有具体需要的朋友提供参考的demo,也可作为新手学习的demo。
目前该项目已经搭建在腾讯云上,有需要的朋友可以登录访问:http://123.207.236.102:8080/ssm_template/pages/login.jsp
超级管理员用户名:system
超级管理员密码:123
开始看项目之前可以先看我之前上传到git上的项目,该项目讲解了ssm的环境搭建以及提供了一个可以现用的demo,朋友们可以直接将项目pull下来后直接使用。git地址:https://git.oschina.net/xi_fan/spring-springmvc-mybatis.git
###一、主要板块讲解:
####1、用户管理板块
需求说明:
- 该项目的使用角色可分为三个:分别为一般用户、系统管理员、超级管理员;
- 权限管理:超级管理员具有所有的权限,包括添加、修改、删除系统管理员等权限,而系统管理员具有管理一般用户的权限,遵守现实中上级管理下级的原则。
用户管理板块具体实现:
- 1、先从dao层说起:在cn.springmvc.dao中搭建好UserInfoDao,该类是一个接口,中包含着对user相关信息的增删查改。具体的可看项目中cn.springmvc.dao.UserInfoDao的实现
- 2 、在对应的目录下配置好UserInfoDao的Mapper映射文件,实现具体函数在mybatis中实现对Mysql的操作。具体的可看项目中cn.springmvc.dao.UserInfoMapper的实现
- 3 、在cn.springmvc.service中搭建好对应的service接口,并在cn.springmvc.service.impl中实现具体的service层功能。具体的可看项目中cn.springmvc.service.impl.UserInfoServiceImpl的实现
- 4 、在cn.springmvc.controller中实现对应的控制器具体的可看项目中cn.springmvc.service.controller.UserInfoController的实现
####2、菜单管理板块
需求说明:
- 该项目的菜单主要可以分为两种,一是项目系统的菜单,需要编写相应的代码进行连接,二是web的菜单,只要提供链接既可以点击后实现跳转。
- 主要实现菜单的crud。
菜单管理板块具体实现:
- 项目的分层以及具体实现跟用户管理板块类似,可以直接查看源码。
在这里我要谈谈我是如何进行mybatis的物理分页的:
学过mybatis的都知道,mybatis使用RowBounds实现的分页是逻辑分页,也就是先把数据记录全部查询出来,然在再根据offset和limit截断记录返回为了在数据库层面上实现物理分页,如果我们不想改变原来MyBatis的函数逻辑,又实现物理分页,可以编写plugin截获MyBatis Executorstatementhandler,重写SQL来执行查询。
那么我是如何在整个项目中进行实现的呢?
我所做的就是在view层、controller层以及Model层三个层中传递一个PageInfo对象,该对象绑定着分页的信息。
在controller层:
@RequestMapping(value = "/queryUser")
public String queryUser(Model model, @ModelAttribute(value = "pageInfo") PageInfo<UserInfo> pageInfo,@ModelAttribute(value = "user") UserInfo userInfo, @ModelAttribute(value = "dept") DeptInfo dept) { //实现业务 }
在service层:将PageInfo打包成RowBounds对象后传给dao层
public ArrayList<UserInfo> queryUsers(Map<String, String> map,PageInfo<UserInfo> pageInfo) {
return userInfoDao.queryUsers(new RowBounds(pageInfo.getFromRecord(),pageInfo.getPageSize()), map);}
在mybatis配置文件中配置plugin:interceptor属性指向拦截器;
<plugins>
<plugin interceptor="cn.springmvc.utildao.PaginationInterceptor" />
</plugins>
而PaginationInterceptor可以查看项目中cn.springmvc.utildao的源码,
对于主要实现数据库的CRUD的mapper没有任何变化。
Note: 其它板块和以上两个差不多,具体的可以查看源码!!!
###二、在ie以及360兼容模式下出现json数据被浏览器拦截并且直接请求保存的问题:
在springmvc-servlet文件中添加:
<!-- json格式配置 -->
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
<property name="objectMapper">
<bean class="com.fasterxml.jackson.databind.ObjectMapper">
<property name="serializationInclusion">
<value type="com.fasterxml.jackson.annotation.JsonInclude.Include">NON_NULL</value>
</property>
<!--
<property name="dateFormat">
<bean class="java.text.SimpleDateFormat">
<constructor-arg value="yyyy-MM-dd HH:mm:ss"/>
</bean>
</property> -->
</bean>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
便可以解决该问题。
Note: 欢迎有兴趣的小伙伴们一起为该项目添加不一样的色彩!!!
相关推荐
综上所述,搭建后台管理系统是一个复杂但有条理的过程,需要从数据库设计开始,再到项目搭建、框架选择、依赖配置等多个方面进行综合考虑和设计。本篇内容详细介绍了数据库设计的规范、项目创建和配置步骤、以及在...
基于ThinkPHP8.0搭建的后台管理系统EasyAdmin8,PHP 最低版本要求不低于 8.0、Layui v2.9.x. 软件开发设计:PHP、应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与...
开发者可以借此学习如何将这些技术组件整合在一起,搭建出一个完整的爬虫后台管理系统。通过阅读和理解源码,可以深入学习Django框架的使用,了解如何配置数据库模型,编写视图函数,设置URL路由,以及如何利用...
在本项目中,我们主要探讨的是如何利用Vue3框架与Element-Plus库来构建一个后台管理系统,特别是关于菜单管理的部分。Vue3是Vue.js的最新版本,它带来了许多性能优化和开发体验提升的新特性,如Composition API、...
Vue.js 是一个流行的轻量级前端JavaScript框架,它以其组件化...以上就是使用Vue.js和Element UI框架搭建后台管理系统时涉及的主要知识点。通过学习和实践,开发者可以快速构建出高效、美观且易于维护的后台管理平台。
使用Vue2和Element-UI搭建后台管理系统时,通常包括以下几个步骤: 1. **环境配置**:安装Node.js,然后使用Vue CLI创建项目,或者手动设置项目结构。 2. **引入Element-UI**:通过npm或yarn安装Element-UI,然后在...
通过这个示例,开发者可以学习如何将Vue2、ElementUI、vue-router和vuex整合到一起,构建出一个完整的后台管理系统。 总结来说,Vue2和ElementUI的结合为后台管理系统开发提供了强大而灵活的工具。通过理解并掌握这...
"vue搭建后台管理系统模板"是基于Vue.js的后台管理系统的基础框架,旨在帮助开发者快速启动项目,避免从零开始配置复杂的构建工具,如Webpack。 Webpack 是一个强大的模块打包器,它将应用程序视为由多个模块组成的...
使用Springboot+Mybatis+bootstrap+AngularJS+Redis搭建后台管理系统 其中设置Cookie的domain解决跨域问题 DbService:数据服务模块 ManagerPage:控制层与静态页面展示模块 registerCenter:服务注册中信 sql:系统...
后台管理系统是IT行业中一个至关重要的组成部分,主要用于企业的内部管理、数据处理、业务流程控制等。在本案例中,“后台管理系统demo”是一个展示后台系统功能和界面设计的示例项目。通常,这样的Demo是为了让...
在本项目"基于vue + element UI 的后台管理系统模板"中,开发者可以利用这些组件和功能,快速搭建起一个具备基本管理功能的后台系统。通过动态路由的实现,系统可以根据用户权限动态加载相应的组件和页面,提高用户...
【标题】"springboot+layui后台管理系统"是一个基于Spring Boot和Layui的Java Web应用程序,主要用于构建高效、便捷的后台管理平台。Spring Boot是Spring框架的简化版本,旨在简化微服务和传统Java Web应用的初始...
"layer搭建的NB后台管理系统"是一个基于layer框架构建的高效、简洁的后台管理界面。layer是一款流行的JavaScript弹层插件,它轻量级且功能强大,适用于网页中的各种弹窗需求,包括提示、对话框、窗口、加载层、...
基于SpringBoot+FreeMarker+MyBatis+ExtJs实现的一个通用后台管理系统,界面美观,适合快速迭代开发 项目说明 技术栈: SpringBoot MyBatis Redis MySQL FreeMarker ExtJs 基于SpringBoot+FreeMarker+MyBatis+...
"小月博客+简洁AngularJS框架后台管理系统bootstrap后台模板" 这个标题提到了两个关键部分:一是“小月博客”,这可能是该模板的出处或作者的标识,表明这是一个由名为“小月”的个人或团队开发的项目;二是“简洁...
Element Plus是基于Vue3的UI组件库,提供了丰富的界面元素,如表格、按钮、模态框等,可以帮助快速搭建后台管理界面,提高开发效率。 【测试与调试】 对于商城后台管理系统,单元测试和集成测试是必不可少的。Vue ...
【后台管理系统原型模板】是一个基于Axure设计的高效工具,主要服务于软件开发团队,用于快速构建后台管理系统的交互原型。这个模板集成了常见的后台管理功能模块,如用户管理、权限控制、数据统计、系统设置等,...
3. "adminTemplate.rar" 很可能是预设的后台管理模板,提供了基本的界面框架和样式,可以快速搭建后台管理系统的基础界面。 在实际开发中,这些资源文件会被整合到后台管理系统中,通过Web服务器部署并运行,以提供...
"非常好看的HTML5 Bootstrap搭建的后台管理系统模板"是利用这两个技术构建的,通常包括以下组成部分: 1. 登录页面:使用Bootstrap的表单组件,可以轻松创建美观且响应式的登录表单,确保在不同设备上都能正常显示...