APP下载

基于SSM框架的后台管理系统设计与实现

2019-06-10刘义忠张伟

软件导刊 2019年2期

刘义忠 张伟

摘 要:为方便使用者更新产品和服务信息,减少企业管理维护成本,提出一种基于J2EE、微服务平台的售药机后台管理系统以实现高效管理和维护。该系统可满足APP管理和分布式管理需求。采用前后端分离方式进行开发,后台前端涉及Bootstrap、 thymeleaf模板引擎等框架,后台系统开发采用目前最流行的微服务框架 SpringBoot( SpringBoot、SpringMvc、Mybatis)。实验结果表明,基于微服务框架的开发可提高系统开发效率及适用性,增强系统可维护性和扩展性,减少繁琐配置,最大化实现约定大于配置,同时采用 Mysql数据库对数据访问更加灵活。

关键词:后台管理;MVC模式;J2EE;SpringBoot;SSM;Mysql数据库

DOI:10. 11907/rjdk. 181997

中图分类号:TP319文献标识码:A文章编号:1672-7800(2019)002-0068-04

Abstract:In order to facilitate users to update product information or service information to reduce the cost of management and maintenance, a kind of backstage management system for drug selling machines based on J2EE and micro service platform is put forward to manage and maintain high efficiency. The system can meet the needs of APP management and distributed management. The back-end separation is used for development. The front end involves the Bootstrap, thymeleaf template engine and other frameworks, the most popular SpringBoot (SpringBoot, SpringMvc, Mybatis) framework for the background system development. The results show that the development of the micro service framework improves the efficiency and applicability of the system, enhances the maintainability and extensibility of the system, reduces the cumbersome configuration. The maximum implementation is greater than the configuration, and the data access is more flexible by using the Mysql database.

Key Words: background management; MVC Mode; J2EE; SpringBoot; SSM; Mysql Database

0 引言

互联网时代新兴技术发展日新月异,其中Web技术 [1]被寄予厚望,众多研究人员致力于用机器取代人类进行工作。目前国内已有将自动售卖机放置在地铁站、大型商场等人流量多的地方,方便人们随时购买饮料,专业人员可通过便捷的管理方式管理后台[2]。但自动售药机后台管理系统普遍存在管理功能弱、系统维护更新难等缺陷,并且在医疗购药方面存在很多需要改进的地方,如药品价格过于高昂,药效低于实际效果等,为了加强业务管理能力,充分合理利用资源可配置化,使价格更加透明、药效更加明显,本文设计了一款基于微服务框架的自动售药机后台管理系统,以提高对药品的监督和管理,规范线上、线下药品价格,使系统易于维护,提高开发效率。

J2EE[3]是JAVA平台企业版(Java Platform,Enterprise Edition)的英文缩写,主要指由 SUN公司开发的一套企业接口API[4]应用规范,其核心是一组软件技术典范和接口应用,帮助实现程序的开发和部署,提高可移植性、健壮性的服务端应用程序。在系统架构上,JAVA企业版本采用MVC设计模式,分层设计结构清晰,前后端数据交互分离,降低各个组件间的耦合性,提高开发效率。MVC[5]是J2EE核心思想,包括主流的三大组件view层、model层、controller层,分别为表现层组件、控制器层组件、业务逻辑层组件。该系统采用的是当今最流行的 SSM[6-10]框架(SpringBoot、 SpringMvc和 Mybatis),相对于最原始的 JDBC、 servlet、 Mysql开发,该框架代码冗余性大大减少,而相对于比较流行的 SSH[11-14](Struts2、 Spring5.0和 Hibernate4.0)框架設计更清晰,便于管理与维护,开发效率更高,最大的区别是微服务 SpringBoot的使用极大简化了繁琐配置。SpringBoot的controller层负责接收来自View层(视图层)的请求转发,Service层实现类实现业务逻辑model层管理;Mybatis[15]作为数据库[16]交互引擎对象,与Dao层紧密联系,对数据库实现增删改查的功能。

1 系统介绍

售药机后台管理系统主要有八大管理模块:售药机列表、库存管理、业务员管理、温湿度管理、品类列表、医生管理、订单管理、账号管理。其基本功能主要涉及到对各个模块信息的增加、更改、查询、删除等基本操作:对售药机详情模块信息城市区域的增加、查询;实现对库存管理模块的库存变更和库存列表药品的查询功能;设备管理实现业务员管理模块的密码管理、补货记录、开锁记录、售药机关联的药品查询、添加、删除和更改;业务员根据设备ID管理售药机所处区域。对售药机温湿度管理实施监控,设置设备温度参数对其进行添加、删除、修改操作;订单管理模块主要是历史订单的筛选和购买者的交易记录;账号管理主要添加管理人员的权限设置和删除等功能;品类列表根据药品和疾病分类做出相应查询、删除、过滤功能。

从主要功能进一步划分,售药机列表主要是售药机详情、线上商品、线下商品、声音管理、通知人模块等操作选项,业务员可以通过省级联动查询售药机所在区域,创建售药机方可插入售药机具体信息;通过查看售药机详情可获取售药机基础信息并监视其运行情况。通过售药机名称和是否有货查询售药机药品库存信息,主要包含库存数量、库存种类、售药机地址;通过库存查询每台售药机库存药品的具体信息,库存变更信息主要指业务员对售药机药品的具体操作,包括操作人、补货与否、库存结余显示等。业务员管理功能主要指业务员对售药机的维护和保养,包括在具体时间段查询售药机的开锁记录和补货记录,同时业务员也需要对售药机详情进行添加、删除等操作,如图1所示。

温湿度管理模块包括参数控制和采集记录,通过对售药机温度、湿度的采集设定具体温度和湿度预警范围,采集记录实时监控售药机正常运行状态,如图2所示。

医生管理模块指通过医生管理列表可以展示医生具体信息,包括所属科室、医院、职称、主修专业,对这些信息进行编辑和管理。订单管理模块指主要管理购买药品详情、支付时间、药品数量、是否出货等字段信息,管理员可通过Excel导出订单详情。账号管理模块指通过添加用户姓名、邮箱、密码、部门、角色、关联城市字段管理用户账号。

2 系统设计

2.1 开发环境

开发工具:IDEA(自带Tomcat)或Eclipse;操作系统:Windows10 ;数据库服务器:Mysql5.7及以上; Web服务器:Tomcat8.0及以上();JDK版本:JDK1.8及以上;配置:CPU;主频2.0GHZ以上;内存:1024MB以上;硬盘:500G以上。

2.2 相关技术

本系统后台主要采用 JAVA2 EE企业级开发和 SSM( SpringBoot)轻量级复合框架的综合使用,前端采用 bootstrap[17]表格框架、 thymeleaf[18]模板引擎实现前后台数据访问,数据的交互采用 ajax异步请求和返回 restful[19]风格的 JSON[20]数据格式, SSM框架主要如下:

(1)SpringBoot精简微服务配置框架, SpringBoot是 Spring衍生品,极大简化了 Spring繁琐配置, SpringBoot将 Spring的核心模块 IOC和 AOP[21]集成在源码文件中, SpringBoot的启动仅依赖 main函数,部分代码如下:

简单的配置文件使项目更具层次感:包括数据库配置、服务器配置、Mybatis扫描文件部分配置,如下所示。

(2)SpringMVC框架。SpringMVC前端控制器DispacherServlet是Spring开发提供的视图层框架。SpringMVC框架主要充当MVC角色,将后台业务逻辑和视图界面交互独立展现出来,封装到 model层和控制器中充当中间件的作用,这使得它们之间互相解耦,可以相互扩展。

(3)Mybatis支持高级映射数据持久层框架。Mybatis框架相对 Hibenate而言,简化了配置和 sql语句书写,防止 sql语句注入,避免了几乎所有 JDBC重复代码、手动设置参数及获取结果集,通过mapper.xml映射文件将结果进行映射,手动编写 sql更加灵活,将dao层接口和 Java的实体类对象映射成数据库中的记录,通过 ID匹配查找相应方法,其中实体类通过 Mybatis配置文件映射的驼峰命名规则配置如下:

,因此其封装性更好和开发效率更高。

上述部分Springboot配置文件整合了Mybatis框架: Mapper接口映射Dao层,用于整合SpringMVC和Springboot。而 SpringmVC框架是基于 MVC设计模型的实现,因为 SpringBoot的 Application配置注解无需单独配置一個 SpringMVC配置文件,其 Springboot通过注解@ ServletComponentScan方式完成自动扫描控制器、@ MapperScan(”**.**. dao”)完成接口映射、@ SpringBootApplication完成主函数启动等等。MVC模式如图3所示。

2.3 分层实体结构设计

根据产品经理提供的 UE[22]需求分析和架构设计,将系统的整体结构大致分为表现层、控制层、 web服务层、数据库访问层,具体细分为 dao层、service层、controller层、domain实体类、Mysql数据库层。如图4所示。

2.4 Mysql数据库表结构设计

根据售药机需求,该系统主要有八大功能模块,因设计的表较多,只显示主要表结构,如图5所示。

3 系统实现

在售药机后台管理系统中共有十几种功能模块,大部分主要涉及各个功能模块的增删改查。下文以其中库存管理模块为基础讲述具体实现过程:

(1)业务逻辑层。数据访问采用 DAO(数据访问对象)模式, DAO模式为了减少业务逻辑和数据访问逻辑之间的耦合,在不修改业务对象的同时使用持久层框架可以减少对象与对象之间、对象和组件之间、组件与组件之间的耦合度,这样就只用关心底层数据访问的代码,提高代码的可重用行。DAO全称为Data Access Object,即数据访问接口对象,通过使用dao层接口可以和底层数据库之间进行数据的交互。定义接口类后,在Mybatis的 Mapper配置文件中添加配置,根据相应ID匹配接口中对应方法即可实现映射。

(2)表现层。通过调用前端控制器组件可将 Web网络 url路由数据访问请求(request)转发(reponse)到注解过的控制类中映射方法上,实现系统页面间跳转,跳转分两种,分别为直接跳转页面和将对象通过 ResponseBody封装,以 restful风格、 Json格式跳转。SpringMVC通过处理器映射器管理处理器,利用视图解析器进行视图管理,采用 bootstrap框架模板进行展示,通过 Ajax异步请求实现效果及渲染,结合 Jquery库实现页面丰富的动态效果。

(3)核心控制层。 负责具体业务模块流程控制,主要调用Service层接口控制具体业务流程,控制配置也需要在配置文件中进行。通过 submit按钮提交 Form表单临时存储库存表中每个字段以及包装对象信息,因此需要一个存储信息的实体类例如 InventoryDO作为可重用组件(JavaBean[23]),通过 domain层中的各个字段自定义 Getter方法获取值和 Setter方法设置值,便可在控制层参数列表中直接写该 domain实体类对象,Spring容器通过控制反转自动进行封装 Bean。根据请求url以控制类中的相应方法分派请求。通过@RestController注解注册所写的控制类, 利用@RequestMappering注册请求的路径,通过@ResponseBody封装返回的数据对象,经过上述处理实现控制层功能。

(4)数据访问层。本系统采用的 Mysql数据库与dao层进行数据交互,实现数据增删改查,在Mybatis源码中, Mybatis框架首先创建 SQL会话工厂实例,其作用相当于一个数据库连接池,然后 SQL会话工厂通过配置的 xml文件获取一个 SQL会话。而执行 SQL语句所需方法,都包含在 SQL会话中,所以底层通过采用 SQL会话完成对数据库的操作,同时对事物提交、回滚,用完之后需要释放数据库连接和关闭会话功能。

4 结语

针对当前后台管理亟待解决的问题,通过对该系统后台的开发,提出了基于SpringBoot微服务框架的后台管理系统方案,运用该框架提高开发效率增强、减少冗余配置、增强实用性。相关人员可以通过本系统进行后台的管理,包括售药机各个模块信息添加、删除、修改、查询以及售药机维护。在一般情况下,只需打开售药机后台管理就能了解售药机的情况,如需详细了解可以通过手机APP进行买药、出药,十分快捷。经过系统的运行测试,预期效果良好。但是使用该框架还存在很多不足,虽然将很多需要手动书写的代码集成在配置文件中,但原理上的认识存在缺陷,因此希望后续开发中能更深层次地理解核心源码。

参考文献:

[1] FAIN,RA. Enterprise Web development[M]. Sebastopol O,Reily Media,2017.

[2] 刘天真,董彦军. 高校科研项目管理系统开发研究[J].中国高校科技与产业化, 2009(12): 52-53.

[3] 李刚. 轻量级J2EE企业应用实战[M]. 第4版.北京:电子工业出版社,2015.

[4] 肖睿,禹晨. java核心API编程[M]. 北京:中国水利水电出版社,2012.

[5] DECK P. Spring MVC学习指南[M]. 林仪明崔毅,译. 北京:人民邮电出版社,2015.

[6] 王艳清,陈红. 基于SSM框架的智能Web系统研发设计[J]. 计算机工程与设计,2012, 33(12):4751-4757.

[7] 陈夫真. 基于SSM 的某高校教室管理信息系统的设计与实现[D].苏州:苏州大学,2012.

[8] 张俊萍,朱小冬. 基于SSM的软件体系结构开发过程研究[J]. 计算机测量与控制,2011,19(8): 2029-2032.

[9] 任晓鹏,赵文兵,张春平. 基于框架的Web 系统开发研究[J]. 计算机工程与设计, 2010,31(4): 772-773.

[10] 李洋. SSM框架在Web应用开发中的设计与实现[J]. 计算机技术与发展,2016(12):190-194.

[11] 张建勇,胥斌,尚艳英,等. 基于SSH框架的固定资产管理 系统研究与设计[J]. 山西煤炭管理干部学院学报,2013,26(1): 112-113,116.

[12] 张朋. 基于Struts2+Hibernate+Spring框架整合的xx边防支队资产管理系统的研究与开发[D]. 北京:北京化工大学,2008.

[13] 李勉. 基于SSH框架的企业固定资产管理系统设计与实现[D]. 北京:北京邮电大学,2011.

[14] 刘婷婕. 基于SSH框架的固定资产管理系统的设计与原型 实现[D]. 成都:电子科技大学,2011.

[15] 王钱,王蓉,张利. 基于iBatis 的通用数据持久层的研究与设计[J]. 微计算机信息, 2007, 23(4-3): 172-173.

[16] 王威. MySQL 数据库源代码分析及存储引擎的设计[D]. 南京: 南京邮电大学, 2012.

[17] 谈华宇, 吴昶成, 邱小平. 基于Bootstrap 框架的动态表单设计与实现[J]. 无线互联科技, 2015(3): 99~100.

[18] WALLS C.Spring Boot in Action[M]. America: Manning Publications Company,2008.

[19] 韩陆.Java RESTful Web Service实战[M]. 第2版.北京:机械工业出版社,2016.

[20] BIBEAULT B,KATZ Y. jQuery in action[M]. New York: Manning Publications Company,2010.

[21] 董源,李培军,许舒人.基于AOP的数据库应用安全控制的设计与实现[J].计算机系统应用, 2015,24(12):74-80.

[22] NORMAN D. The Design of Everyday Things[M]. America:Mit Press,2013.

[23] 高兰,倪远平.采用Java 技术开发可复用的Web 表示层构件[J]. 计算机工程与设计, 2006, 27(18): 3483-3485.

(責任编辑:江 艳)