基于SSM整合框架的快速开发技术研究(2)

1970-01-01 08:00

图4 Spring框架架构

其核心模块为IOC容器和AOP。

4.1 IOC(Inversion of Control控制反转,又名依赖注入)

IOC即依赖注入,利用java里的反射机制在运行时动态的去创建、调用对象,Spring框架就是在运行的时候,根据Spring的applicationContext.xml配置文件来动态的创建对象并调用对象的方法的,所以使用Spring框架后不需要用new方法创建而是通过框架自动产生一个对象,只需要在xml文件中对bean进行定义。Spring发展到3.0后,不需要在xml文件中逐个定义bean对象,只需在调用的文件中使用@Autowired来声明所调用的对象即可,使开发更加简洁方便。

4.2 AOP(Aspect-OrientedProgramming,面向方面编程)

AOP即面向切面编程,其原理是利用代理的设计模式,未使用Spring时,开发人员需要编写大量的代码来实现AOP,现在有了Spring对AOP的支持,不仅减轻了开发的工作量提高了开发的效率,也增强了程序的可靠性。本系统中Spring的AOP主要用于对事务的管理。

Spring框架主要用于降低系统模块之间的耦合度。其主要技术包括控制反转(IOC)和面向切面编程(AOP)两大方面。Spring降低耦合度的功能主要通过IOC来实现,IOC是Spring

框架的核心,其原理可以理解为程序的所有组件都是被动的,初始化和调用都有容器(Spring)的负责。另外Spring提供了AOP技术,利用AOP可以对业务逻辑的各个部分进行隔离,如:日志记录、事务处理等,从而使得业务逻辑各部分的耦合度降低,提高程序的可重用性和开发效率。

4.3 spring的主要特性。

(1)降低组件之间的耦合度,实现软件各层之间的解耦。

(2)可以使用容器提供的众多服务,如:事务管理服务、消息服务、JMS服务、持久化服务等等。

(3)容器提供单例模式支持,开发人员不再需要自己编写实现代码。

(4)容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能。 (5)容器提供的众多辅作类,使用这些类能够加快应用的开发,如:JdbcTemplate、HibernateTemplate.

(6)对主流的应用框架提供了集成支持。 6 Hibernate与Mybatis技术研究

MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。

MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。

用xml文件构建SqlSessionFactory实例是非常简单的事情。推荐在这个配置中使用类路径资源(classpath resource),但你可以使用任何Reader实例,包括用文件路径或file://开头的url创建的实例。MyBatis有一个实用类----Resources,它有很多方法,可以方便地从类路径及其它位置加载资源。

6.1功能架构

Mybatis的功能架构分为三层,如图5所示:

图4 Mybatis 架构

(1)API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。

(2)数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。

(3)基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。

6.2工作流程

(1)加载配置:配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。

(2)SQL解析:当API接口层接收到调用请求时,会接收到传入SQL的ID和传入对象(可以是Map、JavaBean或者基本数据类型),Mybatis会根据SQL的ID找到对应的MappedStatement,然后根据传入参数对象对MappedStatement进行解析,解析后可以得到最终要执行的SQL语句和参数。

(3)SQL执行:将最终得到的SQL和参数拿到数据库进行执行,得到操作数据库的结果。

(4)结果映射:将操作数据库的结果按照映射的配置进行转换,可以转换成HashMap、JavaBean或者基本数据类型,并将最终结果返回。

6.3动态SQL

MyBatis 最强大的特性之一就是它的动态语句功能。如果您以前有使用JDBC或者类似框架的经历,您就会明白把SQL语句条件连接在一起是多么的痛苦,要确保不能忘记空格或者不要在columns列后面省略一个逗号等。动态语句能够完全解决掉这些痛苦。

尽管与动态SQL一起工作不是在开一个party,但是MyBatis确实能通过在任何映射SQL语句中使用强大的动态SQL来改进这些状况。动态SQL元素对于任何使用过JSTL或者类似于XML之类的文本处理器的人来说,都是非常熟悉的。在上一版本中,需要了解和学习非常多的元素,但在MyBatis 3 中有了许多的改进,现在只剩下差不多二分之一的元素。MyBatis使用了基于强大的OGNL表达式来消除了大部分元素。

MyBatis是一个可以自定义SQL、存储过程和高级映射的持久层框架。只使用简单的XML和注解来配置和映射基本数据类型、MAP接口和POJO(简单的JAVA对象)到数据库记录。相比另一流行的持久层框架Hibernate,MyBatis是一种“半自动化”的ORM(对象关系映射)实现,可以进行更为细致的SQL优化减少查询字段。因为本系统主要是对数据库的数据进行处理,而且数据量会比较大,结构比较稳定,因此对SQL语句应进行更高度的优化,所以本系统选择MyBatis作为数据库持久层框架。

相对Hibernate的全自动化,Mybatis是半自动化的ORM框架,虽然不如全自动化更节省开发人员时间,但是对于对性能要求较高的系统,Mybatis可以对SQL语句自由进行优化,而且现在有MybatisGenerateCode等插件工具可以实现自动生成实体类和基本的select,insert,delete及update语句。减少了Mybatis与Hibernate在开发复杂度上面差距。表1是使用zakisoft工具对Hibernate和Mybatis的执行效率进行的测试数据,其中执行时间为平均每条数据的执行时间,insert测试数据为10000条,select、delete、update每次测试均为随机选择、删除、更新一条数据,执行次数100次。

根据以上调研及测试,综合考虑,本系统采用Mybatis框架。

7.管理员及权限模块实现

系统建立初期,只有超级管理员一个角色和用户,超级管理员可以创建其他角色,并为角色分配不同的权限,例如:web菜单维护角色、新闻内容管理角色、web布局管理角色以及文件管理等角色。然后创建web智能管理系统的后台管理员用户,每个用户有其对应的权限角色。例如拥有菜单维护的权限的用户,可以创建前台网站菜单并分配该菜单对应的主页。不同角色的管理员拥有不同的权限,在很大程度上保证了前台web系统的安全性。 7框架组合

经过对各个框架的研究,系统采用SSM框架组合,分别取Spring mvc、spring3.0、Mybatis各框架中优秀模块进行组合,实现MVC架构模式。取Spring mvc中的Action层与JSP页面之间的交互响应、拦截器,过滤器等功能作为view层和controller层;Mybatis作为model层,负责实例、JDBC连接以及数据持久层的功能;Spring作为一个轻量级的框架,采用其核心模块IOC、AOP、Test,其中,IOC依赖翻转用来连接各个层之间对象,简化各个对象之间调用;由于基于反射及代理模式的面向切面编程开销比较大,本系统中只用来进行事务管理,负责事务的回滚机制,Spring的Test机制使得测试变得不再复杂,可以采用非容器依赖的编程方式进行大部分测试工作,此外Spring还担当着MVC各个层之间的无缝连接工作,否则即使各个框架都很优秀也无法发挥出其最大的作用。

在SSM整合框架中,每一个框架都发挥着自己最擅长的方面: Spring mvc注重于降低表现层与逻辑层的耦合度,在视图层和控制层发挥作用;Spring作为整个框架的核心部分,起到了桥梁的作用,对业务层的层次深化,在业务层通过其IOC技术的对象依赖注入和AOP技术的事务分离,更深层次的降低了耦合程度;MyBatis框架主要负责Java对象和关系数据库之间的映射,在数据持久层上提供数据的访问。通过应用SSM整合框架,可以将整个系统开发的结构大致分为如图2所示。


基于SSM整合框架的快速开发技术研究(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:二年级数学评课稿

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: