APP下载

SSM框架整合技术分析*

2021-09-16雷申洪王大卫

科学与信息化 2021年23期
关键词:事务管理配置文件代码

雷申洪 王大卫

四川民族学院 四川 康定 626001

引言

框架(FrameWork)是预先定好的骨架,可重用的半成品模块,用于开发烦琐复杂程序。几年前SSH框架是市场上比较流行的框架,SSH框架是开源的,也是最受企业欣赏的框架技术之一,SSH框架包含Structs2、Spring、Hibernate。但随着技术的发展,SSH框架的缺点也显现出来,例如:对servlet过度依赖,持久化类无法映射多个表,属于重量级框架,具有耦合度高,占用资源多,部署难等缺点。随后一种更加灵活的轻量级框架SSM框架出现,它由Mybatis、Spring、SpringMVC三个框架组合而成。现在SSM框架整合技术应用于网站管理页面,数据库,前端,后台之中,目前广泛应用于电子商务平台开发之中,Spring框架整合MyBatis和SpringMVC框架接收用户请求,并且对请求做出响应。各个模块之间业务流程由SpringMVC框架负责,SpringMVC应用与表示层和业务层之间,Spring在中间层进行工作,MyBatis负责业务处理对象和数据库进行交互,解决对象和数据库之间映射问题,处于系统底层。所以,SSH框架层次结构清晰,为系统开发提供有力支撑。

1 SSM框架

1.1 Spring框架

传统的Java EE开发使用重量级框架,导致开发效率低下,维护难度增加。Spring致力于Java EE开发的解决方案,它以Ioc、AOP为主要思想,属于一个大杂烩,将不同的框架整合到一起,并渗透业务层、表现层等,使得各层之间低耦合、无缝衔接,能协同整理SpringMVC、MyBatis等框架[1]。

1.1.1 Spring体系结构。Spring有6个部分约20个模块组成,这些分别是Data、Web、AOP(面向切片编程)、instrumentation、Core Container、Test等。Spring体系结构如图1所示:

图1 Spring体系结构

1.1.1.1 Spring Core。Spring由Core、Beans、Context和语言表达模块组成,其中核心容器是框架最基础的部分,IOC是核心容器中最核心的内容;Beans模块是一个复杂的工厂模式实现,主要提供BeanFactory;Spring Context建立在Beans和Core的基础上,主要提供集成工具,Application Context是本模块的重点内容;表达式语言支持在运行时提供查询操作。

1.1.1.2 数据访问集成。数据访问集成主要由JDBC、OXM、ORM(Object Relational Mapping)和事务处理模块等组成。其中,Spring JDBC提供了JDBC的抽象逻辑,精简了代码,但代码更加健壮;ORM,Spring ORM由ORM框架支持,例如JPA、JDO、Hibernate和iBatis,提供了集成层;OXM 模块提供了抽象层,它支持对 JAXB、Castor、XMLBeans、JiBX 和XStream 的对象XML 映射实现;事务处理模块为特殊接口的类及所有的 POJO 支持编程式和声明式事务管理[2]。

1.1.1.3 Web。Spring Web在Web开发过程中提供对Mybatis、SpringMVC等Web框架支持,能较好地管理这些框架。例如:Spring能将数据注入框架,也能在调用方法前,调用Spring的拦截

1.2 SpringMVC框架

Spring MVC 框架提供Java EE平台开发中的Web模块,属于一个开源框架,并与Spring框架无缝衔接。SpringMVC在本质上属于Servlet,主要作用是MVC模式中的Controller,用来建立试图与模型的数据交互。

在SpringMVC框架中,Servlet被Controller(控制器)取代。Controller的作用是接收视图发来的请求,并调用Model进行处理,处理完成后返回结果,并调用视图层进行渲染,最后反馈到客户端执行。SpringMVC原理图如图2所示:

图2 SpringMVC 原理图

1.3 MyBatis框架

MyBatis框架由iBatis发展而来,是一个开源的数据持久框架。它支持JDBC访问数据库,SQL查询、存储过程和高级映射,解决了SQL语句与Java类之间的阻抗不匹配。MyBatis是一个优秀的持久层框架,其主要的特点是SQL语句配置在配置文件中,将SQL语句与程序分离开来,实现了不修改代码,可直接修改SQL[3]。

1.3.1 ORM

ORM(对象关系/、映射)作为一种数据持久化技术。它的特点是建立对象模型与数据库数据之间的对应关系,通过ORM技术,使用JavaBean对象操作数据库表中的数据。在实际开发过程中,ORM就像一座桥梁,程序员无须通过复杂的数据库连接技术和SQL语句操作数据库中的表,直通在Mybatis.xml文件中配置映射关系,即可实现数据库增、删、改、查等操作。ORM映射关系如图3所示:

图3 ORM映射关系

2 SSM框架整合

SSM框架即Spring+SpringMVC+MyBatis,具有速度快、性能高且稳定、配置简单等特点,是目前市场比较流行的企业开发框架。

MyBatis属于一个ORM数据持久的框架,SpringMVC是一个Web框架,虽然MyBatis和SpringMVC框架属于两个完全独立的框架,但是通过Spring的IOC和AOP能将SpringMVC和MyBatis中的对象配置到Spring框架的容器中,进而实现Spring框架、SpringMVC和MyBatis框架的整合,此举能增强系统的灵活性,提高开发效率,优化代码,降低开发难度等[4]。SSM整合原理如图4所示:

图4 SSM整合原理图

2.1 重要的配置文件

2.1.1 web.xml。在web.xml配置文件中重点需要配置DispatcherServlet。DispatcherServlet是SpringMVC框架的核心,它的作用是将接拦截的数据交给相应的处理器处理。另外,还需对字符编码过滤配置,上下文context-param配置,监听器ContextLoaderListener配置等[5]。

2.1.2 spring-mybatis.xml配置文件。spring-mybatis.xml是Spring的配置文件,该配置文件主要对事务管理、数据源对象MyBatis等进行配置。

2.1.2.1 数据源相关配置,包括数据库连接基本信息配置(db.Properties),即数据库连接地址、用户名、密码等。还可配置数据库连接池的属性,定义数据连接池的个数、等待时间、回收方法,连接数据库时,是否进行安全校验等[6]。

2.1.2.2 事务管理配置。通过AOP切面对事务进行管理,所有的业务逻辑都会在本文件中配置。其中aop:config标签的作用是使用AspectJ的expression操作来完成相关事务的配置。

2.1.2.3 MyBatis的SQLSessionFactoryBean配置,会话工厂用于配置数据源的映射位置。

2.1.2.4 MapperScannerConfigurer用于配置sqlSessionFactory BeanName和basePackage,自动扫描 将Mapper接口生成代理注入Spring。

2.1.2.5 transactionManager用于配置事务管理器,并将数据注入连接池。

2.1.3 springmvc.xml,用于配置初始的DispatcherServlet,用于开启注解扫描Controller注解,配置视图解析对象,过滤静态资源等[7]。

2.2 整合步骤

2.2.1 新建项目并导入相关的jar包,包括测试用包、Web开发相关包、Spring开发相关包、日志开发包、数据库驱动包、MyBatis开发包、文件上传开发包等[8]。

2.2.2 搭建Spring框架,创建Spring配置文件,测试spring。

2.2.3 搭建SpringMVC框架:创建springmvc配置文件,创建JSP页面,编写Controller代码,测试。

2.2.4 Spring框架与SpringMVC整合。①创建service对象。②Controller代码中注入service对象。③web.xml中配置spring监听器和文件位置。④加载Spring容器和SpringMVC容器。当Controller代码中能成功调用service对象方法,表明整合成功。

2.2.5 搭建MyBatis框架。①dao层接口编写SQL语句。②编写mybatis.xml文件。③MyBatis框架测试。若测试能对数据库操作,则配置成功。

2.2.6 Spring框架与MyBatis整合。①创建spring-mybatis.xml配置文件,配置数据库连接池。②配置SqlSessionFactory工厂,并配置dao层位置,让其代理注入到Ioc容器中。③在springmybatis.xml中配置spring事务管理。④测试[9]。

3 结束语

在网站开发经常会使用SSM框架,本文简明扼要地分析了SSM框架的特点及原理,重点分析了配置文件的特点,阐述了SSM框架搭建的过程,在一定程度上帮助初学者学习SSM框架,了解其原理,并为其快速搭建框架提供了可能。

猜你喜欢

事务管理配置文件代码
基于Docker的实时数据处理系统配置文件管理软件的设计与实现
美国高校学生事务管理CAS生涯服务专业标准述评
从Windows 10中删除所有网络配置文件
用软件处理Windows沙盒配置文件
互不干涉混用Chromium Edge
创世代码
创世代码
创世代码
创世代码
以主体性思维成就内生式管理