APP下载

MyBatis与Spring在图书馆数字资源链接管理中的应用

2021-07-07王龙军

内蒙古科技与经济 2021年11期
关键词:框架管理系统服务器

王龙军

(成都工业学院,四川 成都 611730)

后疫情时代图书馆的数字资源显得比以前更重要,学术交流和学术会议在防控需要的情况下大量减少,这时图书馆数字资源是读者进行学术交流和学术会议的重要补充,读者可以利用超星学习通进行在线交流和视频会议,同时图书馆数字资源也是读者进行教学和科研的必备资源,因此,开发图书馆数字资源链接管理系统非常重要,笔者重点是关注图书馆购买的第三方数字资源链接的管理,像知网、维普、超星、学习通等资源就属于第三方数字资源,笔者目的是通过该系统能更方便地管理图书馆购置的第三方数字资源链接,给读者提供一个良好的资源服务。

1 相关技术介绍

1.1 MyBatis介绍

MyBatis是优秀的持久层框架[1],MyBatis[2]以前的名字是iBatis,2010年改名为MyBatis,MyBatis是一个基于Java的支持SQL语句查询的持久层框架,MyBatis解决了JDBC代码中参数在Java类中手动配置问题和对结果集的手工检索问题,使用简单的XML配置或注解进行配置和映射,MyBatis可以使用XML配置文件的方式来创建数据库连接池,这样就避免JDBC的数据库连接池的硬编码问题。MyBatis用接口和普通Java对象(POJO)映射数据库中的数据记录,这样就可以采用面向对象的编程方法来操作数据库,与Hibernate不同的是,MyBatis是一个半自动映射的框架,因此,MyBatis需要手动设置POJO、SQL语句和映射关系,而Hibernate是一个全表映射的框架,不需要编写SQL语句,只需要编写POJO和映射关系就可以完成持久化操作。MyBatis没有Hibernate功能那么强大,但是MyBatis简单小巧,入门简单,容易上手,节省开发成本,MyBatis适合开发需求变更频繁的互联网系统,同时MyBatis也是当前主流的ORM框架。

1.2 Spring介绍

Spring是于2003年兴起的一个轻量级Java开源框架,由Rod Johnson在其著作Expert One-On-One J2EE Design and Development中阐述的部分理念和原型衍生而来[3]。Spring框架的核心是“控制反转(IoC)和面向切面编程(AOP)”,通过使用IoC容器,对象依赖关系的管理被反转了,转到IoC容器中来了,对象之间相互依赖关系由IoC容器进行管理[4],控制反转的目的是在软件开发中解耦,提高组件重用的力度;面向切面编程时面向对象编程完善和补充,面向切面编程采用横向抽取机制,将影响多个类中的公共方法代码抽取出来,然后封装到一个可重用的模块,在程序编译或运行时将可重用的模块代码应用到需要的地方进行执行,比如日志、权限验证等功能都可以方便地用面向切面编程实现。

Spring 3种配置方式为基于XML的配置、基于注解的配置、基于Java类的配置,这3种配置方式推荐使用Java配置,特别是在Spring 3.0以后的版本,包括Spring 4.x和Spring Boot都推荐使用Java配置。

1.3 Nginx介绍

Nginx是一个高性能的反向代理和Http的Web服务器软件,俄罗斯人Igor Sysoev使用C语言开发这款软件,Nginx作为Web服务器一直为其所在的Rambler Media公司提供出色而又稳定的服务,后来Igor Sysoev将Nginx代码开源,并且赋予自由软件许可证。Nginx是一款轻量级的开源软件,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,具有性能稳定、高并发、低内存耗用、高性能的处理能力等特点,被广泛应用到国内外各互联网厂商的实际生产架构中。Nginx 基于事件驱动架构,具有可支持数百万级别并发请求的处理能力,其通常被用于技术架构中的访问入口,国内使用Nginx服务器的大公司很多,比如淘宝、百度、腾讯、网易、京东、新浪等。

Nginx分为开源版和Nginx Plus商业版,开源版在国内使用比较多,本系统就是用Nginx开源版作为静态服务器,Nginx具有很多特性,笔者重点介绍3个特性,内容如下:①静态资源的Web服务器。静态资源主要是包括Html、CSS、JavaScript等的页面,简单来说,就是Nginx不能对数据库进行读写操作,只能对静态资源进行解析。②反向代理服务器。指以Nginx服务器来接受客户端的连接请求,然后将请求转发给内部网络上的Web服务器;并将从服务器上得到的结果返回给请求连接的客户端,此时Nginx服务器对外就表现为一个服务器。③负载均衡。客户端请求Nginx反向代理服务器,反向代理服务器根据一定的策略,将请求分发到内网不同的多个目标服务器,这样使得大量并发访问被分担到多个服务器进行并行处理,减少了每台服务器的并发压力,从而减少用户等待的响应时间。

2 MyBatis与Spring在图书馆数字资源链接管理系统的设计和实现

2.1 图书馆数字资源链接管理系统总体设计

笔者设计了基于MyBatis与Spring的图书馆数字资源链接管理系统,该系统采用浏览器/服务器(B/S)模式,该系统总体上分为两部分:系统前台和系统后台,系统前台主要功能是展示数字资源链接,系统前台面向的用户主要是读者,读者通过点击系统前台链接地址访问相应的数字资源,系统后台主要功能是对图书馆数字资源链接地址进行增加、修改和删除等功能,系统后台面向的用户是管理员,他们对图书馆数字资源链接进行日常管理。图书馆数字资源管理系统总体结构如图1所示。

图1 图书馆数字资源管理系统总体结构

2.2 图书馆数字资源链接管理系统实现

图书馆数字资源链接管理系统是在CentOS Linux 7.2平台上开发,通过Docker快速安装JDK、Tomcat、Nginx、MySQL、Eclipse等软件,系统采用Nginx服务器处理静态页面,采用Tomcat服务器处理动态页面,在Nginx服务器的Webroot目录下面放置所有的静态资源,比如资源链接展示程序,在Tomcat服务器的Webroot目录下面放置动态请求的程序,动态请求的程序也是文中重点探讨的Spring和MyBatis框架程序,比如资源链接增加、修改等程序,数据库选择MySQL。当客户端(一般是Web浏览器)访问本管理系统的时候,如果是静态资源的请求,就直接到Nginx服务器的Webroot目录下面获取资源,如果是动态资源的请求,Nginx服务器利用反向代理的原理,把请求转发给Tomcat服务器进行处理,这样就实现了动静分离,提高了服务器处理请求的性能。

本系统采用DAO模式来完成整个框架的构建,系统中主要采用MyBatis和Spring,其中MyBatis用于持久层,配置操作数据库的SQL语句,主要完成对图书馆数字资源链接的增删改查等数据表操作,Spring是一个容器和整个应用的工厂,主要用来在持久层整合MyBatis框架,解决了对象之间的耦合问题。本系统难点在于整合Spring和MyBatis,系统实现的具体方法是:让Spring的IoC容器管理MyBatis的SqlSessionFactory,按照DAO模式编写接口和接口的实现类,在Spring配置文件中向DAO实现类注入SqlSessionFactory,同时指定数据源,这样Spring与MyBatis实现了完美整合,通过使用mybatis-spring整合包中的SqlSessionDaoSupport类的getSqlSession()方法创建会话实体类SqlSession,从而实现与数据库进行各种操作。

系统展示的4个模块分别是:资源链接展示模块、资源链接增加模块、资源链接修改和资源链接删除模块,模块功能是通过DAO接口类ResDAO和其实现类ResDAOImpl来完成,系统是采用Kotlin编写功能代码,MyBatis通过其映射文件ResMapper.xml来实现资源的持久化类Resource和数据表Resource相关联,然后通过配置SQL语句实现对资源链接的增删改查操作。映射文件ResMapper.xml部分关键代码如下:

insert into Resource(name,url) values(#{name},#{url})

update Resource set name = #{name},url = #{url} where id = #{id}

delete from Resource where id = #{id}

MyBatis和Spring整合的关键配置如下:

系统中还有很多代码和技术细节不能一一展示,通过整合MyBatis和Spring实现图书馆数字资源链接系统的各个模块的功能,系统投入使用后运行稳定,读者使用方便,系统具有良好的实用价值。

3 结束语

本系统在CentOS Linux 7.2平台上开发,通过Docker快速安装JDK、Tomcat、Nginx、MySQL、Eclipse等软件,服务器采用Nginx实现对静态页面和动态请求页面进行管理,软件开发方面采用MyBatis与Spring框架技术设计了图书馆数字资源链接管理系统,系统采用DAO模式对MyBatis和Spring进行深度整合,系统在前端实现了展示图书馆数字资源链接和查询资源,在后端实现了对数字资源链接进行增加、修改、删除等功能,系统投入使用后必将进一步提升图书馆的在线业务水平。

猜你喜欢

框架管理系统服务器
基于James的院内邮件管理系统的实现
有机框架材料的后合成交换
框架
PowerTCP Server Tool
BlackJumboDog
2018年全球服务器市场将保持温和增长
停车场寻车管理系统
生产管理系统概述
海盾压载水管理系统
关于原点对称的不规则Gabor框架的构造