描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302528999
产品特色
编辑推荐
《Spring Spring MVC MyBatis框架技术精讲与整合案例》的特点如下:?
1. 涵盖了Spring和MyBatis等主流框架的常用技术,通过93个案例对知识点进行精讲。
2. 详细介绍了Spring、Spring MVC和MyBatis框架的整合,并结合前端流行的EasyUI、Bootstrap和 Vue框架,细致讲解了3个SSM整合项目的开发过程。
3. 48小时全程同步高清视频,让您看得懂、学得会、做得出。
4. 附赠资源包括同步视频、项目案例源代码、电子课件。
1. 涵盖了Spring和MyBatis等主流框架的常用技术,通过93个案例对知识点进行精讲。
2. 详细介绍了Spring、Spring MVC和MyBatis框架的整合,并结合前端流行的EasyUI、Bootstrap和 Vue框架,细致讲解了3个SSM整合项目的开发过程。
3. 48小时全程同步高清视频,让您看得懂、学得会、做得出。
4. 附赠资源包括同步视频、项目案例源代码、电子课件。
内容简介
《Spring Spring MVC MyBatis框架技术精讲与整合案例》全面地讲解了使用*流行轻量级框架SSM进行Java EE Web开发的技术,重点介绍了Eclipse开发平台、Spring框架、Spring MVC和MyBatis框架等基础知识,并用三个SSM框架整合案例演示框架应用技巧和连接技术,内容由浅入深,引人入胜。
《Spring Spring MVC MyBatis框架技术精讲与整合案例》共分21章,各基础章节在知识点讲解中,均结合了小案例的精讲,以帮助读者更好地理解和掌握。综合实例部分涉及三个SSM整合案例,均按功能分类,采用三层架构(数据访问层、业务逻辑层和视图层)进行精讲,各层之间分层清晰,层与层之间耦合方法简单,读者可以全面理解实现过程,同时三个案例分别使用了三个流行前端UI:Easy UI、Bootstrap和Vue,可以进一步拓展读者的知识面。为方便读者学习和教学开展,本书提供了全程真实课程录像。
《Spring Spring MVC MyBatis框架技术精讲与整合案例》不仅适合初学者按部就班地学习,也适合网络开发人员作为技术参考,同时,也可作为高等院校计算机相关专业学生的课堂教材。
《Spring Spring MVC MyBatis框架技术精讲与整合案例》共分21章,各基础章节在知识点讲解中,均结合了小案例的精讲,以帮助读者更好地理解和掌握。综合实例部分涉及三个SSM整合案例,均按功能分类,采用三层架构(数据访问层、业务逻辑层和视图层)进行精讲,各层之间分层清晰,层与层之间耦合方法简单,读者可以全面理解实现过程,同时三个案例分别使用了三个流行前端UI:Easy UI、Bootstrap和Vue,可以进一步拓展读者的知识面。为方便读者学习和教学开展,本书提供了全程真实课程录像。
《Spring Spring MVC MyBatis框架技术精讲与整合案例》不仅适合初学者按部就班地学习,也适合网络开发人员作为技术参考,同时,也可作为高等院校计算机相关专业学生的课堂教材。
前 言
前 言
SSM框架是继SSH之后,目前比较主流的Java EE企业级框架,适用于搭建各种大型的企业级应用系统。 SSM框架,是Spring Spring MVC MyBatis的缩写,Spring通过依赖注入来管理各层的组件,使用面向方面编程AOP管理事务、日志、权限等。Spring MVC代表了Model(模型)、View(视图)、Controller(控制),接收外部请求,进行分发和处理。MyBatis基于JDBC的框架,主要用来操作数据库,并将业务实体和数据表联系起来。
1. 本书内容结构
本书全面介绍了Eclipse开发平台、Spring框架、Spring MVC框架和MyBatis框架等基础知识,最后通过三个具体实例详细讲解了SSM框架的整合和运用。全书共分21章,具体内容如下。
第1章 搭建Java Web开发环境,主要介绍Java开发包(Java Development Kit)、应用服务器Tomcat、MySQL数据库和集成开发环境Eclipse。
第2章 Spring的基本应用,主要介绍Spring框架入门的一些基础知识,重点讲解Spring的核心机制:依赖注入/控制反转。
第3章 Spring Bean的装配模式,主要介绍Bean工厂ApplicationContext、Bean的配置、Bean的作用域和Bean的装配方式。
第4章 Spring AOP(面向方面编程),主要介绍Spring AOP的相关概念,并以日志通知为例先后讲解基于XML配置文件的AOP实现和基于@AspectJ注解的AOP实现。
第5章 Spring的数据库编程,主要介绍Spring中的JDBC编程。
第6章 Spring MVC简介,主要介绍Spring MVC的模式、基础知识和工作流程。
第7章 Spring MVC常用注解,介绍Spring MVC的常用注解和3种请求映射方式,参数绑定注解和转换JSON格式。
第8章 Spring MVC标签库,介绍Spring MVC的表单标签和如何使用表单标签绑定数据。
第9章 Spring MVC类型转换、数据格式化和数据校验,介绍Spring MVC的数据处理。
第10章 Spring MVC的文件上传和下载,介绍MultipartResolver接口和ResponseEntity类型。
第11章 Spring MVC的国际化和拦截器,介绍messageSource、LocaleResolver国际化语言区域解析器接口以及拦截器的配置。
第12章 MyBatis入门,介绍MyBatis框架的概念、下载与安装和工作原理,并详细讲解MyBatis框架的基本用法。
第13章 MyBatis的关联映射,介绍使用MyBatis框架处理三种关联关系的具体过程。
第14章 动态SQL,介绍MyBatis框架的动态SQL及动态SQL的主要元素。
第15章 MyBatis的注解配置,介绍MyBatis框架基于注解的单表增删改查、多表关联映射和动态SQL等。
第16章 MyBatis缓存,介绍MyBatis框架的缓存概念和一级缓存、二级缓存的用法。
第17章 Spring整合MyBatis,介绍SSM框架,并以登录功能为例,采用注解方式实现Spring与MyBatis框架的整合。
第18章 前端UI框架,介绍jQuery Easy UI、Bootstrap和Vue三种前端框架。
第19章 电商平台后台管理系统,结合前端Easy UI框架,详细讲解典型的电商平台后台管理系统的具体实现过程。
第20章 校园通讯管理系统,结合前端Bootstrap的H 框架,详细讲解校园通讯管理系统的具体实现过程。
第21章 电商网站,结合前端Vue框架,详细讲解简单的电商网站的具体实现过程。
2.本书的特点和优势
本书作者在Java EE Web领域具有多年的开发和教学讲解经验,熟悉Java开发理论知识体系,凭着娴熟的笔法和渊博的理论知识,采取精雕细琢的写作方式,将SSM开发技术展现得淋漓尽致,能使读者很快进入实际开发角色。本书与市场上其他类似书籍相比,具有以下与众不同的特色。
(1) 细致全面:本书内容的编排从开发环境搭建开始,从基本知识入手,由浅入深地逐渐转入到高级部分,所讲解的内容囊括了SSM框架的重要知识点。注重介绍如何在实际工作中活用基础知识,做到高质量地进行程序开发。
(2) 结合示例:本书在各章知识点的讲解中,都结合了小示例的精讲加以验证。对特别难懂的知识点,通过恰当的示例帮助读者进行分析、加以理解。
(3) 讲解透彻:本书在项目案例讲解的过程中,均按功能分类,采用三层架构(模型、视图、控制)进行相关组件的讲解,各层之间分层清晰,层与层之间以松耦合的方法组织在一起,便于读者理解每个功能的实现过程。
(4) 实用性强:本书的实用性较强,以经验为后盾、以实践为导向、以实用为目标,深入浅出地讲解Java Web开发中的各种问题。
(5) 课堂实录:采用知识讲解 课堂实录的方式,提供一套全过程课程录像,更利于读者跟进学习,既可以直接用于学校教学,又方便读者自学,是很多初学者和教学老师的选择。
3. 本书读者对象
有一定Java基础,但是没有Java EE系统开发经验的初学者。
有其他Web编程语言(如ASP、ASP.NET)开发经验,欲快速转向Java EE开发的程序员。
对JSP有一定了解,但是缺乏Java EE框架开发经验,并希望了解流行开源框架Spring、Spring MVC和MyBatis以及欲对这些框架进行整合的程序员。
有一定Java Web框架开发基础,需要对Java EE主流框架技术核心进一步了解和掌握的程序员。
大中专院校正在学习编程开发的计算机及相关专业的学生。
公司管理人员或人力资源管理人员。
4.本书配套资源
本书附赠完整的学习资源,包括同步教学录像、教学PPT、源代码、素材文件等内容,可供学习者使用,请从清华大学出版社官网(http://www.tup.tsinghua.edu.cn)下载。
5. 本书作者及致谢
本书由扬州职业大学的缪勇和施俊编写。其中,施俊编写第1~11章,主要内容是开发环境搭建和Spring、Spring MVC基础知识;缪勇编写第12~21章,主要内容是MyBatis基础知识和三个整合案例。李新锋对全书进行了审核和统筹,其他参与编写的人员还有王梅、陈亚辉、李艳会、刘娇、王晶晶、游名扬、李云霞、王永庆、蒋梅芳、谢伟、纪航、沈勇等,同时扬州国脉通信发展有限责任公司、江苏智途科技股份有限公司也为本书的编写提供了帮助,在此一一向他们致谢。
由于作者水平有限,书中难免存在一些不足和疏漏之处,敬请读者批评指正。
SSM框架是继SSH之后,目前比较主流的Java EE企业级框架,适用于搭建各种大型的企业级应用系统。 SSM框架,是Spring Spring MVC MyBatis的缩写,Spring通过依赖注入来管理各层的组件,使用面向方面编程AOP管理事务、日志、权限等。Spring MVC代表了Model(模型)、View(视图)、Controller(控制),接收外部请求,进行分发和处理。MyBatis基于JDBC的框架,主要用来操作数据库,并将业务实体和数据表联系起来。
1. 本书内容结构
本书全面介绍了Eclipse开发平台、Spring框架、Spring MVC框架和MyBatis框架等基础知识,最后通过三个具体实例详细讲解了SSM框架的整合和运用。全书共分21章,具体内容如下。
第1章 搭建Java Web开发环境,主要介绍Java开发包(Java Development Kit)、应用服务器Tomcat、MySQL数据库和集成开发环境Eclipse。
第2章 Spring的基本应用,主要介绍Spring框架入门的一些基础知识,重点讲解Spring的核心机制:依赖注入/控制反转。
第3章 Spring Bean的装配模式,主要介绍Bean工厂ApplicationContext、Bean的配置、Bean的作用域和Bean的装配方式。
第4章 Spring AOP(面向方面编程),主要介绍Spring AOP的相关概念,并以日志通知为例先后讲解基于XML配置文件的AOP实现和基于@AspectJ注解的AOP实现。
第5章 Spring的数据库编程,主要介绍Spring中的JDBC编程。
第6章 Spring MVC简介,主要介绍Spring MVC的模式、基础知识和工作流程。
第7章 Spring MVC常用注解,介绍Spring MVC的常用注解和3种请求映射方式,参数绑定注解和转换JSON格式。
第8章 Spring MVC标签库,介绍Spring MVC的表单标签和如何使用表单标签绑定数据。
第9章 Spring MVC类型转换、数据格式化和数据校验,介绍Spring MVC的数据处理。
第10章 Spring MVC的文件上传和下载,介绍MultipartResolver接口和ResponseEntity类型。
第11章 Spring MVC的国际化和拦截器,介绍messageSource、LocaleResolver国际化语言区域解析器接口以及拦截器的配置。
第12章 MyBatis入门,介绍MyBatis框架的概念、下载与安装和工作原理,并详细讲解MyBatis框架的基本用法。
第13章 MyBatis的关联映射,介绍使用MyBatis框架处理三种关联关系的具体过程。
第14章 动态SQL,介绍MyBatis框架的动态SQL及动态SQL的主要元素。
第15章 MyBatis的注解配置,介绍MyBatis框架基于注解的单表增删改查、多表关联映射和动态SQL等。
第16章 MyBatis缓存,介绍MyBatis框架的缓存概念和一级缓存、二级缓存的用法。
第17章 Spring整合MyBatis,介绍SSM框架,并以登录功能为例,采用注解方式实现Spring与MyBatis框架的整合。
第18章 前端UI框架,介绍jQuery Easy UI、Bootstrap和Vue三种前端框架。
第19章 电商平台后台管理系统,结合前端Easy UI框架,详细讲解典型的电商平台后台管理系统的具体实现过程。
第20章 校园通讯管理系统,结合前端Bootstrap的H 框架,详细讲解校园通讯管理系统的具体实现过程。
第21章 电商网站,结合前端Vue框架,详细讲解简单的电商网站的具体实现过程。
2.本书的特点和优势
本书作者在Java EE Web领域具有多年的开发和教学讲解经验,熟悉Java开发理论知识体系,凭着娴熟的笔法和渊博的理论知识,采取精雕细琢的写作方式,将SSM开发技术展现得淋漓尽致,能使读者很快进入实际开发角色。本书与市场上其他类似书籍相比,具有以下与众不同的特色。
(1) 细致全面:本书内容的编排从开发环境搭建开始,从基本知识入手,由浅入深地逐渐转入到高级部分,所讲解的内容囊括了SSM框架的重要知识点。注重介绍如何在实际工作中活用基础知识,做到高质量地进行程序开发。
(2) 结合示例:本书在各章知识点的讲解中,都结合了小示例的精讲加以验证。对特别难懂的知识点,通过恰当的示例帮助读者进行分析、加以理解。
(3) 讲解透彻:本书在项目案例讲解的过程中,均按功能分类,采用三层架构(模型、视图、控制)进行相关组件的讲解,各层之间分层清晰,层与层之间以松耦合的方法组织在一起,便于读者理解每个功能的实现过程。
(4) 实用性强:本书的实用性较强,以经验为后盾、以实践为导向、以实用为目标,深入浅出地讲解Java Web开发中的各种问题。
(5) 课堂实录:采用知识讲解 课堂实录的方式,提供一套全过程课程录像,更利于读者跟进学习,既可以直接用于学校教学,又方便读者自学,是很多初学者和教学老师的选择。
3. 本书读者对象
有一定Java基础,但是没有Java EE系统开发经验的初学者。
有其他Web编程语言(如ASP、ASP.NET)开发经验,欲快速转向Java EE开发的程序员。
对JSP有一定了解,但是缺乏Java EE框架开发经验,并希望了解流行开源框架Spring、Spring MVC和MyBatis以及欲对这些框架进行整合的程序员。
有一定Java Web框架开发基础,需要对Java EE主流框架技术核心进一步了解和掌握的程序员。
大中专院校正在学习编程开发的计算机及相关专业的学生。
公司管理人员或人力资源管理人员。
4.本书配套资源
本书附赠完整的学习资源,包括同步教学录像、教学PPT、源代码、素材文件等内容,可供学习者使用,请从清华大学出版社官网(http://www.tup.tsinghua.edu.cn)下载。
5. 本书作者及致谢
本书由扬州职业大学的缪勇和施俊编写。其中,施俊编写第1~11章,主要内容是开发环境搭建和Spring、Spring MVC基础知识;缪勇编写第12~21章,主要内容是MyBatis基础知识和三个整合案例。李新锋对全书进行了审核和统筹,其他参与编写的人员还有王梅、陈亚辉、李艳会、刘娇、王晶晶、游名扬、李云霞、王永庆、蒋梅芳、谢伟、纪航、沈勇等,同时扬州国脉通信发展有限责任公司、江苏智途科技股份有限公司也为本书的编写提供了帮助,在此一一向他们致谢。
由于作者水平有限,书中难免存在一些不足和疏漏之处,敬请读者批评指正。
免费在线读
第2章 Spring的基本应用
本章开始学习Spring框架。Spring框架可以说是Java世界最为成功的框架,已经发展为一个功能丰富并易用的轻量级集成框架,是当前主流的Java Web开发框架。Spring是为解决企业级应用开发的复杂性而产生的,其核心是一个完整的基于控制反转(IoC)的轻量级容器,用户可以使用它建立自己的应用程序。在容器上,Spring提供了大量使用的服务,将很多高质量的开源项目集成到统一的框架上。从某个程度上来看,Spring框架充当了黏合剂和润滑剂的角色,它对Hibernate、MyBatis和Struts 2等框架提供了良好的支持,能够将相应的Java Web系统柔顺地整合起来,并让它们更易使用,同时其本身还提供了声明式事务等企业级开发不可或缺的功能。
2.1 Spring概述
2.1.1 Spring的概念
Spring从2004年发布第一个版本至今已经十几年了。Spring是由Rod Johnson组织和开发的一个分层的Java SE/EE一站式轻量级框架,它以IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向方面编程)为内核。在Spring中,认为一切Java类都是资源,而资源都是类的实例对象(Bean),容纳并管理这些Bean的是Spring所提供的IoC容器,所以Spring是一种基于Bean的编程,它深刻地改变着Java开发世界,使用基本的JavaBean来完成以前只有EJB才能完成的工作,避免了EJB臃肿、低效的开发模式,因此迅速地取代EJB成为了实际的开发标准。
Spring是一个轻量级框架,它大大地简化了Java企业级开发,提供了强大、稳定的功能,又没有带额外的负担,让使用Spring的人做每一件事情的时候都有得体和优雅的感觉。Spring致力于Java EE应用各层的解决方案,而不是仅仅专注于某一层的方案。在表现层它提供了Spring MVC以及与Struts 2框架的整合功能;在业务逻辑层可以管理事务、记录日志等;在持久层可以整合Hibernate、MyBatis、JdbcTemplate等技术。这就充分体现出Spring是一个全面的解决方案,对于已经有较好解决方案的领域,Spring绝不做重复的事情。
2.1.2 Spring的优点
Spring作为实现JavaEE的一个全方位应用程序框架,为开发企业级应用提供了一个健壮、高效的解决方案。它不仅可以应用于服务器端开发,也可应用于任何Java应用的开发。Spring框架具有以下几个特点。
(1) 非侵入式:所谓非侵入式,是指Spring框架的API不会在业务逻辑上出现,也就是说业务逻辑应该是纯净的,不能出现与业务逻辑无关的代码。针对应用而言,这样才能将业务逻辑从当前应用中剥离出来,从而在其他的应用中实现复用;针对框架而言,由于业务逻辑中没有Spring的API,所以业务逻辑也可以从Spring框架快速地移植到其他框架。
(2) 容器。Spring提供了容器功能,容器可以管理对象的生命周期,以及对象与对象之间的依赖关系。可以写一个配置文件(通常是xml文件),在上面定义对象的名字,是否是单例,以及设置与其他对象的依赖关系。那么在容器启动之后,这些对象就被实例化好了,直接用就可以,而且依赖关系也建立好了。
(3) IoC:控制反转,即依赖关系的转移,如果以前都是依赖于实现,那么现在反转为依赖于抽象,其核心思想就是要面向接口编程。
(4) 依赖注入:对象与对象之间依赖关系的实现,包括接口注入、构造注入、属性setter方法注入,在Spring中支持后两种注入。
(5) AOP:面向方面编程,将日志、安全、事务管理等服务(或功能)理解成一个“方面”,以前这些服务通常是直接写在业务逻辑的代码中,这有两个缺点:首先是业务逻辑不纯净,其次是这些服务被很多业务逻辑反复使用,不能做到复用。AOP解决了上述问题,可以把这些服务剥离出来形成一个“方面”,可以实现复用;然后将“方面”动态地插入到业务逻辑中,让业务逻辑能够方便地使用“方面”提供的服务。
其他还有一些特点但不是Spring的核心,例如对JDBC的封装与简化,提供事务管理功能,对O/R mapping工具(Hibernate、MyBatis)的整合,提供MVC解决方案;也可以与其他Web框架(Struts、JSF)进行整合;还有对JNDI、mail等服务进行封装。
2.1.3 Spring的体系结构
Spring框架(Spring Framework)在不断发展和完善,目前Spring框架由20个功能模块构成,这些模块被分组到Core Container、Data Access/Integration、Web、AOP(Aspect Oriented Programming)、Instrumentation、Messaging和Test中,Spring Framework包含的内容如图2-1所示。
图2-1 Spring Framework结构
组成Spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。下面对体系结构中的模块作简单介绍,具体如下。
(1) Core Container,核心容器提供了Spring的基本功能,是其他模块建立的基础,它主要由Beans模块、Core模块、Context模块和Spring EL模块组成,介绍如下。
Beans模块:提供了BeanFactory,是工厂模式实现的经典,Spring将管理对象称为Bean。
Core核心模块:提供了Spring框架的基本组成部分,包括IoC和DI功能。
Context上下文模块:构建于核心模块之上,它是访问定义配置的任何对象的媒介。扩展了BeanFactory的功能,其中ApplicationContext是Context模块的核心接口。
Spring EL模块:是Spring 3.0后新增的模块,提供了Spring Expression Language支持,是运行时查询和操作对象图的强大的表达式语言。
(2) Data Access/Integration,数据访问/集成层包括JDBC、ORM、OXM、JMS和Transactions模块,介绍如下。
JDBC模块:提供了一个JDBC的抽象层,大幅度地减少了在开发中对数据库的操作的编码。
ORM模块:提供了与多个第三方持久层框架的良好整合。
OXM模块。提供了一个支持对象/XML 映射的抽象层实现,如JAXB、Castor、XMLBeans、JiBX和XStream。
JMS模块。指Java消息传递服务,包含使用和产生消息的特性,自Spring 4.1版本以后,提供了与Spring-messaging模块的集成。
Transactions模块:支持对实现特殊接口以及所有POJO类的编程和声明式的事务管理。
(3) Web,Web层包括WebSocket、Servlet、Web和Portlet模块,介绍如下。
Web模块:提供了基础的针对Web开发的集成特性,例如多方文件上传,利用Servlet监听器进行IoC容器初始化以及Web应用上下文。
Servlet模块:也称做Spring-webmvc模块,包含Spring的模型-视图-控制器(MVC)和REST Web Services实现的Web应用程序。
WebSocket模块:Spring 4.0以后新增功能,提供了WebSocket和SockJS的实现,以及对STOMP的支持。
Portlet模块:类似Servlet模块的功能,提供了Portlet环境下的MVC实现。
(4) 其他模块。Spring的其他模块还有AOP、Aspects、Instrumentation、Messaging以及Test模块,介绍如下。
AOP模块:提供了面向方面编程的支持,允许定义方法拦截器和切入点,将代码按照功能进行分离,以降低耦合性。
Aspects模块:提供了与AspectJ的集成功能,AspectJ是一个功能强大且成熟的面向方面编程的框架。
Instrumentation框架:提供了类工具的支持和类加载器的实现,可以在特定的应用服务器中使用。
Messaging模块:Spring 4.0以后新增的模块,提供了对消息传递体系结构和协议的支持。
Test模块:提供了对单元测试和集成测试的支持。
本章开始学习Spring框架。Spring框架可以说是Java世界最为成功的框架,已经发展为一个功能丰富并易用的轻量级集成框架,是当前主流的Java Web开发框架。Spring是为解决企业级应用开发的复杂性而产生的,其核心是一个完整的基于控制反转(IoC)的轻量级容器,用户可以使用它建立自己的应用程序。在容器上,Spring提供了大量使用的服务,将很多高质量的开源项目集成到统一的框架上。从某个程度上来看,Spring框架充当了黏合剂和润滑剂的角色,它对Hibernate、MyBatis和Struts 2等框架提供了良好的支持,能够将相应的Java Web系统柔顺地整合起来,并让它们更易使用,同时其本身还提供了声明式事务等企业级开发不可或缺的功能。
2.1 Spring概述
2.1.1 Spring的概念
Spring从2004年发布第一个版本至今已经十几年了。Spring是由Rod Johnson组织和开发的一个分层的Java SE/EE一站式轻量级框架,它以IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向方面编程)为内核。在Spring中,认为一切Java类都是资源,而资源都是类的实例对象(Bean),容纳并管理这些Bean的是Spring所提供的IoC容器,所以Spring是一种基于Bean的编程,它深刻地改变着Java开发世界,使用基本的JavaBean来完成以前只有EJB才能完成的工作,避免了EJB臃肿、低效的开发模式,因此迅速地取代EJB成为了实际的开发标准。
Spring是一个轻量级框架,它大大地简化了Java企业级开发,提供了强大、稳定的功能,又没有带额外的负担,让使用Spring的人做每一件事情的时候都有得体和优雅的感觉。Spring致力于Java EE应用各层的解决方案,而不是仅仅专注于某一层的方案。在表现层它提供了Spring MVC以及与Struts 2框架的整合功能;在业务逻辑层可以管理事务、记录日志等;在持久层可以整合Hibernate、MyBatis、JdbcTemplate等技术。这就充分体现出Spring是一个全面的解决方案,对于已经有较好解决方案的领域,Spring绝不做重复的事情。
2.1.2 Spring的优点
Spring作为实现JavaEE的一个全方位应用程序框架,为开发企业级应用提供了一个健壮、高效的解决方案。它不仅可以应用于服务器端开发,也可应用于任何Java应用的开发。Spring框架具有以下几个特点。
(1) 非侵入式:所谓非侵入式,是指Spring框架的API不会在业务逻辑上出现,也就是说业务逻辑应该是纯净的,不能出现与业务逻辑无关的代码。针对应用而言,这样才能将业务逻辑从当前应用中剥离出来,从而在其他的应用中实现复用;针对框架而言,由于业务逻辑中没有Spring的API,所以业务逻辑也可以从Spring框架快速地移植到其他框架。
(2) 容器。Spring提供了容器功能,容器可以管理对象的生命周期,以及对象与对象之间的依赖关系。可以写一个配置文件(通常是xml文件),在上面定义对象的名字,是否是单例,以及设置与其他对象的依赖关系。那么在容器启动之后,这些对象就被实例化好了,直接用就可以,而且依赖关系也建立好了。
(3) IoC:控制反转,即依赖关系的转移,如果以前都是依赖于实现,那么现在反转为依赖于抽象,其核心思想就是要面向接口编程。
(4) 依赖注入:对象与对象之间依赖关系的实现,包括接口注入、构造注入、属性setter方法注入,在Spring中支持后两种注入。
(5) AOP:面向方面编程,将日志、安全、事务管理等服务(或功能)理解成一个“方面”,以前这些服务通常是直接写在业务逻辑的代码中,这有两个缺点:首先是业务逻辑不纯净,其次是这些服务被很多业务逻辑反复使用,不能做到复用。AOP解决了上述问题,可以把这些服务剥离出来形成一个“方面”,可以实现复用;然后将“方面”动态地插入到业务逻辑中,让业务逻辑能够方便地使用“方面”提供的服务。
其他还有一些特点但不是Spring的核心,例如对JDBC的封装与简化,提供事务管理功能,对O/R mapping工具(Hibernate、MyBatis)的整合,提供MVC解决方案;也可以与其他Web框架(Struts、JSF)进行整合;还有对JNDI、mail等服务进行封装。
2.1.3 Spring的体系结构
Spring框架(Spring Framework)在不断发展和完善,目前Spring框架由20个功能模块构成,这些模块被分组到Core Container、Data Access/Integration、Web、AOP(Aspect Oriented Programming)、Instrumentation、Messaging和Test中,Spring Framework包含的内容如图2-1所示。
图2-1 Spring Framework结构
组成Spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。下面对体系结构中的模块作简单介绍,具体如下。
(1) Core Container,核心容器提供了Spring的基本功能,是其他模块建立的基础,它主要由Beans模块、Core模块、Context模块和Spring EL模块组成,介绍如下。
Beans模块:提供了BeanFactory,是工厂模式实现的经典,Spring将管理对象称为Bean。
Core核心模块:提供了Spring框架的基本组成部分,包括IoC和DI功能。
Context上下文模块:构建于核心模块之上,它是访问定义配置的任何对象的媒介。扩展了BeanFactory的功能,其中ApplicationContext是Context模块的核心接口。
Spring EL模块:是Spring 3.0后新增的模块,提供了Spring Expression Language支持,是运行时查询和操作对象图的强大的表达式语言。
(2) Data Access/Integration,数据访问/集成层包括JDBC、ORM、OXM、JMS和Transactions模块,介绍如下。
JDBC模块:提供了一个JDBC的抽象层,大幅度地减少了在开发中对数据库的操作的编码。
ORM模块:提供了与多个第三方持久层框架的良好整合。
OXM模块。提供了一个支持对象/XML 映射的抽象层实现,如JAXB、Castor、XMLBeans、JiBX和XStream。
JMS模块。指Java消息传递服务,包含使用和产生消息的特性,自Spring 4.1版本以后,提供了与Spring-messaging模块的集成。
Transactions模块:支持对实现特殊接口以及所有POJO类的编程和声明式的事务管理。
(3) Web,Web层包括WebSocket、Servlet、Web和Portlet模块,介绍如下。
Web模块:提供了基础的针对Web开发的集成特性,例如多方文件上传,利用Servlet监听器进行IoC容器初始化以及Web应用上下文。
Servlet模块:也称做Spring-webmvc模块,包含Spring的模型-视图-控制器(MVC)和REST Web Services实现的Web应用程序。
WebSocket模块:Spring 4.0以后新增功能,提供了WebSocket和SockJS的实现,以及对STOMP的支持。
Portlet模块:类似Servlet模块的功能,提供了Portlet环境下的MVC实现。
(4) 其他模块。Spring的其他模块还有AOP、Aspects、Instrumentation、Messaging以及Test模块,介绍如下。
AOP模块:提供了面向方面编程的支持,允许定义方法拦截器和切入点,将代码按照功能进行分离,以降低耦合性。
Aspects模块:提供了与AspectJ的集成功能,AspectJ是一个功能强大且成熟的面向方面编程的框架。
Instrumentation框架:提供了类工具的支持和类加载器的实现,可以在特定的应用服务器中使用。
Messaging模块:Spring 4.0以后新增的模块,提供了对消息传递体系结构和协议的支持。
Test模块:提供了对单元测试和集成测试的支持。
评论
还没有评论。