`
wx1568520008
  • 浏览: 20395 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

我是如何从0到1搭建一个公司的后台管理系统的

 
阅读更多

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: 欢迎有兴趣的小伙伴们一起为该项目添加不一样的色彩!!!

转载于:https://my.oschina.net/u/2286602/blog/775741

分享到:
评论

相关推荐

    搭建后台管理系统搭建后台管理系统

    综上所述,搭建后台管理系统是一个复杂但有条理的过程,需要从数据库设计开始,再到项目搭建、框架选择、依赖配置等多个方面进行综合考虑和设计。本篇内容详细介绍了数据库设计的规范、项目创建和配置步骤、以及在...

    基于ThinkPHP8.0搭建的后台管理系统.zip

    基于ThinkPHP8.0搭建的后台管理系统EasyAdmin8,PHP 最低版本要求不低于 8.0、Layui v2.9.x. 软件开发设计:PHP、应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与...

    Django爬虫后台管理系统

    开发者可以借此学习如何将这些技术组件整合在一起,搭建出一个完整的爬虫后台管理系统。通过阅读和理解源码,可以深入学习Django框架的使用,了解如何配置数据库模型,编写视图函数,设置URL路由,以及如何利用...

    vue3使用element-plus搭建后台管理系统---菜单管理

    在本项目中,我们主要探讨的是如何利用Vue3框架与Element-Plus库来构建一个后台管理系统,特别是关于菜单管理的部分。Vue3是Vue.js的最新版本,它带来了许多性能优化和开发体验提升的新特性,如Composition API、...

    vueelement框架搭建的后台管理系统

    Vue.js 是一个流行的轻量级前端JavaScript框架,它以其组件化...以上就是使用Vue.js和Element UI框架搭建后台管理系统时涉及的主要知识点。通过学习和实践,开发者可以快速构建出高效、美观且易于维护的后台管理平台。

    基于vue2 + Element-ui搭建的后台管理系统源码.zip

    使用Vue2和Element-UI搭建后台管理系统时,通常包括以下几个步骤: 1. **环境配置**:安装Node.js,然后使用Vue CLI创建项目,或者手动设置项目结构。 2. **引入Element-UI**:通过npm或yarn安装Element-UI,然后在...

    vue2和elementUI搭建的后台管理系统

    通过这个示例,开发者可以学习如何将Vue2、ElementUI、vue-router和vuex整合到一起,构建出一个完整的后台管理系统。 总结来说,Vue2和ElementUI的结合为后台管理系统开发提供了强大而灵活的工具。通过理解并掌握这...

    vue搭建后台管理系统模板

    "vue搭建后台管理系统模板"是基于Vue.js的后台管理系统的基础框架,旨在帮助开发者快速启动项目,避免从零开始配置复杂的构建工具,如Webpack。 Webpack 是一个强大的模块打包器,它将应用程序视为由多个模块组成的...

    Springboot微服搭建后台管理系统

    使用Springboot+Mybatis+bootstrap+AngularJS+Redis搭建后台管理系统 其中设置Cookie的domain解决跨域问题 DbService:数据服务模块 ManagerPage:控制层与静态页面展示模块 registerCenter:服务注册中信 sql:系统...

    后台管理系统demo

    后台管理系统是IT行业中一个至关重要的组成部分,主要用于企业的内部管理、数据处理、业务流程控制等。在本案例中,“后台管理系统demo”是一个展示后台系统功能和界面设计的示例项目。通常,这样的Demo是为了让...

    基于vue + element UI 的后台管理系统模板

    在本项目"基于vue + element UI 的后台管理系统模板"中,开发者可以利用这些组件和功能,快速搭建起一个具备基本管理功能的后台系统。通过动态路由的实现,系统可以根据用户权限动态加载相应的组件和页面,提高用户...

    springboot+layui后台管理系统

    【标题】"springboot+layui后台管理系统"是一个基于Spring Boot和Layui的Java Web应用程序,主要用于构建高效、便捷的后台管理平台。Spring Boot是Spring框架的简化版本,旨在简化微服务和传统Java Web应用的初始...

    layer搭建的NB后台管理系统

    "layer搭建的NB后台管理系统"是一个基于layer框架构建的高效、简洁的后台管理界面。layer是一款流行的JavaScript弹层插件,它轻量级且功能强大,适用于网页中的各种弹窗需求,包括提示、对话框、窗口、加载层、...

    基于SpringBoot+FreeMarker+MyBatis+ExtJs实现的一个通用后台管理系统,界面美观,适合快速迭代开发

    基于SpringBoot+FreeMarker+MyBatis+ExtJs实现的一个通用后台管理系统,界面美观,适合快速迭代开发 项目说明 技术栈: SpringBoot MyBatis Redis MySQL FreeMarker ExtJs 基于SpringBoot+FreeMarker+MyBatis+...

    小月博客+简洁AngularJS框架后台管理系统bootstrap后台模板

    "小月博客+简洁AngularJS框架后台管理系统bootstrap后台模板" 这个标题提到了两个关键部分:一是“小月博客”,这可能是该模板的出处或作者的标识,表明这是一个由名为“小月”的个人或团队开发的项目;二是“简洁...

    基于vue3+TS构建的商城后台管理系统

    Element Plus是基于Vue3的UI组件库,提供了丰富的界面元素,如表格、按钮、模态框等,可以帮助快速搭建后台管理界面,提高开发效率。 【测试与调试】 对于商城后台管理系统,单元测试和集成测试是必不可少的。Vue ...

    后台管理系统原型模板

    【后台管理系统原型模板】是一个基于Axure设计的高效工具,主要服务于软件开发团队,用于快速构建后台管理系统的交互原型。这个模板集成了常见的后台管理功能模块,如用户管理、权限控制、数据统计、系统设置等,...

    后台管理系统界面b/s模式

    3. "adminTemplate.rar" 很可能是预设的后台管理模板,提供了基本的界面框架和样式,可以快速搭建后台管理系统的基础界面。 在实际开发中,这些资源文件会被整合到后台管理系统中,通过Web服务器部署并运行,以提供...

    非常好看的HTML5 Bootstrap搭建的后台管理系统模板

    "非常好看的HTML5 Bootstrap搭建的后台管理系统模板"是利用这两个技术构建的,通常包括以下组成部分: 1. 登录页面:使用Bootstrap的表单组件,可以轻松创建美观且响应式的登录表单,确保在不同设备上都能正常显示...

Global site tag (gtag.js) - Google Analytics