1.3 进入Spring的世界之观赏Spring美景

1.3 观赏Spring美景

Spring的初心就是通过依赖注入,面向切面和减少模板代码来简化java企业级开发.合理的使用Spring可以减少java开发,但是Spring框架目前也已经是一个很大的生态系统了(毕竟当初Spring就是跟java对抗的 java是一个大平台 那么如今的Spring也逐渐演变成了技术平台),基于核心的框架,扩展到了例如web-service,REST,移动设备,NoSql等技术领域.

通过分解核心的框架来看看Spring带来了什么,并且了解Spring公文包中的其它成员。

1.3.1  Spring模块  这部分纯粹就是很概念的东西  了解一下

下载Spring并打开lib目录,可以看到很多的jar文件。在Spring4.0中 有20个不同的小模块。

 

这些模块可以分为6种功能策略,从这些功能策略可以给予java企业级开发的大部分信息。但是我们可以选择这些功能策略中的几点来满足我们自己的应用。如果Spring无法满足我们的需求,我们可以寻找其它的框架来满足我们的应用。并且Spring提供了许多与其它框架集成的连接点。

Spring核心容器

  Spring框架的心脏就是容器,用来管理Spring中的Bean的创造,配置,管理。这个模块中提供DI的组件是SpringBeanFactory.基于SpringBeanFactory,还有多个Spring ApplicationContext的实现,提供了不同的方式来配置Spring(前面已经提过).

除此之外,bean factory和application context也提供了许多企业服务,例如email,jNDI,EJB集成和调度。

所有这些模块都基于核心容器。我们可能会使用到这些类,在我们配置应用的时候。在第二章会深入Spring的DI。

Spring AOP模块

    Sping为面向切面编程提供了巨大的支持。这个模块可以作为切面编程的基础。和DI类似,AOP实现了应用对象的松耦合。使用APO,整个应用的一些关注点与它们应用到的对象解耦。第四章会谈论AOP。

数据访问和集成

   使用JDBC正常会产生许多模板代码。Spring将这些模板代码抽象化,让我们写的代码更加清晰和简单,并且可以防止一些关闭数据库资源的问题产生。这个模块也建立了一个有意义的异常层次基于各种数据库产生的异常消息。不需要再尝试解读神秘而专有的SQL错误消息。

对于那些更喜欢使用对象-关系映射(ORM)的人,Spring提供了ORM模块。Spring对ORM的支持建立在对DAO的支持,为若干个ORM解决方案提供了一个方便的方式来建立DAO。Spring并没有尝试去实现自己的ORM解决方案,而是提供了钩子与受欢迎的框架进行整合,比如Hibernate,JPA,Java Data Object,IBatis SQL MAPs.Spring的事务管理支持每一个ORM框架,包括JDBC。

我们可以看到基于JDBC的Spring模板可以极大的简化JDBC,当我们使用数据访问在第十章.

这个模块也包括基于Java Message Service的抽象,为和其它应用通过消息进行异步的集成。并且从Spring3.0开始,这个模块包括了面向XML文件的映射功能,最开始是作为Spring Web服务项目的一部分。

除此之外,这个模块使用了Spring的AOP模块为在Spring应用中的对象提供事务管理服务。

WEB和远程

MVC设计是一种很广泛的方法用于web应用中,用来分离用户接口和实现逻辑。java不缺少MVC框架的实现,比如Struts,JSF,WebWork,Tapestry(一种受欢迎的MVC选择)。

即使Spring可以和某干个MVC框架集成,在WEB和远程模块中有一种可用的MVC框架,它是在web应用的web层次中起到了松耦合的作用。将会在第5-7章学习Spring MVC 框架

为了满足面向用户的web应用程序,这个模块也提供了若干个远端的选择,用来实现一个应用程序与若干个应用程序进行交互。这个模块包括了RMI(Remote Method Invoke),Hessian,Bur-lap,JAX-WS,和Spring自己的HTTP调用器。Spring也提供了一个支持REST风格的API。第十五章我们将会学习Spring远程,在十六章接触REST API.

工具

Spring的工具模块包括了支持为JVM添加代理。具体来说,为Tomcat提供了weaving代理,可以在类加载的时候改变类文件。

这个模块在这本书中很少介绍,或者说很少用,又或者说能用好这种技术的人一般都是大牛。所以先成为小牛再说吧。

测试  

  认识到测试的重要性,Spring提供了一个致力于帮助测试的模块。

在这个模块中,将会看到许多的模拟对象用来书写单元测试,使用JNDI,Servlets,Portlets.对于集成级别的测试,这个模块为在Spring Application Context的bean提供了加载的支持。

通过这本书,许多例子都会利用这个模块来测试。

    

    

时间: 2025-01-04 16:39:19

1.3 进入Spring的世界之观赏Spring美景的相关文章

Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(三)

前两章我为大家详细介绍了如何搭建Maven环境.Spring MVC的流程结构.Spring MVC与Struts2的区别以及示例中的一些配置文件的分析.在这一章,我就对示例的层次结构进行说明,以及MyBatis的一些简单介绍. 本文不会对MyBatis作详细说明,大象还是假定阅读本文的朋友对MyBatis(ibatis)有最基本的了解,只有这样才能较好的理解本文的内容.关于MyBatis请查看它的官方文档及其它参考资料,本文不作详细讨论. 一.工程结构图      上面这是典型的Maven项目

Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(一)

Spring更新到3.0之后,其MVC框架加入了一个非常不错的东西——那就是REST.它的开放式特性,与Spring的无缝集成,以及Spring框架的优秀表现,使得现在很多公司将其作为新的系统开发框架.大象根据实际的项目经验,以之前SSH2例子为基础,对其进行一次大改造,详细的为大家讲解如何实现SSM3全注解式的开发. 这次大象将采取两种构建方式,一是很多人喜欢用的MyEclipse,另一个,则是用Eclipse+Maven.这一篇,将主要讲解开发环境设置与Maven构建方式. 1. 开发环境

Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(二)

在上一篇文章中我详细的介绍了如何搭建maven环境以及生成一个maven骨架的web项目,那么这章中我将讲述Spring MVC的流程结构,Spring MVC与Struts2的区别,以及例子中的一些配置文件的分析. 一.Spring MVC 3.0介绍 Spring MVC是一个典型的MVC框架,是Spring内置的Web框架,可以作为应用项目的展示层,继Spring 2.0对Spring MVC进行重大升级后,Spring 2.5又为Spring MVC引入了注解驱动功能,再到3.0时代,全

Spring学习(八)spring整合struts2

一.spring框架对struts等表现层框架的整合原理 : 使用spring的ioc容器管理struts中用于处理请求的Action 将Action配置成ioc容器中的bean 延伸:spring对持久层框架/技术的整合原理 (封装) : 提供模板类封装对应技术/框架的开发流程 通过对模板类的使用,实现对传统开发流程的"代替". 二.整合方式: 插件方式 struts2为了实现对spring框架整合,也提供了一个插件的配置文件struts-plugin.xml struts2-spr

Spring框架[一]——spring概念和ioc入门(ioc操作xml配置文件)

Spring概念 spring是开源的轻量级框架(即不需要依赖其他东西,可用直接使用) spring核心主要两部分 aop:面向切面编程,扩展功能不是修改源代码来实现: ioc:控制反转,比如:有一个类,在类中有个方法(非静态的方法),要调用类中的这个方法,则需要创建类的对象,使用对象调用方法.创建类对象的过程,需要new出来对象:而ioc则是将对象的创建不是通过new方式实现,而是交给spring配置来创建对象(即,将对象的创建交给spring来管理): spring是一站式框架 spring

深入探索spring技术内幕(二): 剖析spring管理Bean的原理与配置

求二叉树的宽度和深度 给定一个二叉树,获取该二叉树的宽度和深度. 例如输入 a / \ b c / \ / \ d e f g 返回3. 详细描述: 接口说明 原型: int GetBiNodeInfo(BiNode &head, unsigned int *pulWidth, unsigned int *pulHeight) 输入参数: head 需要获取深度的二叉树头结点 输出参数(指针指向的内存区域保证有效): pulWidth 宽度 pulHeight 高度 返回值: 0 成功 1 失败

Spring Framework Ecosystem – Introduction to Spring Projects

来自于:http://springtutorials.com/spring-ecosystem/ Hello and Welcome to Spring Tutorials Blog! Is it fair to assume you have at least heard of Spring Framework official website – spring.io? If not, I would recommend that you check it out. There are som

Spring系列之谈谈对Spring IOC的理解

学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IOC .DI这两个概念是模糊不清的,是很难理解的,今天和大家分享网上的一些技术大牛们对Spring框架的IOC的理解以及谈谈我对Spring Ioc的理解. 一.分享Iteye的开涛对Ioc的精彩讲解首先要分享的是Iteye的开涛这位技术牛人对Spring框架的IOC的理解,写得非常通俗易懂,以下内容全部来自原文 1.1.IoC是什么 Ioc—Inversi

Spring笔记(四): spring的编程式事务与声明式事务

一.Spring 事务属性分析 事务管理对于企业应用而言至关重要.它保证了用户的每一次操作都是可靠的,即便出现了异常的访问情况,也不至于破坏后台数据的完整性.就像银行的自助取款机,通常都能正常为客户服务,但是也难免遇到操作过程中机器突然出故障的情况,此时,事务就必须确保出故障前对账户的操作不生效,就像用户刚才完全没有使用过取款机一样,以保证用户和银行的利益都不受损失. 在 Spring 中,事务是通过 TransactionDefinition 接口来定义的.该接口包含与事务属性有关的方法.在