1.3 Spring体系结构
Spring框架由1400多个类组成,整个框架按其所属功能可以划分为5个主要模块,如图所示。
从整体看这5个主要模块几乎为企业应用提供了所需的一切,从持久层、业务层到展现层都拥有相应的支持。就像吕布的赤兔马和方天画戟、秦琼的黄骠马和熟铜锏,IoC和AOP是Spring所依赖的根本。在此基础上,Spring整合了各种企业应用开源框架和许多优秀的第三方类库,成为Java企业应用full-stack的开发框架。Spring框架的精妙之处在于:开发者拥有自由的选择权,Spring不会将自己的意志强加给开发者,因为针对某个领域问题,Spring往往支持多种实现方案。当希望选用不同的实现方案时,Spring又能保证过渡的平滑性。
IoC。
Spring核心模块实现了IoC的功能,它将类和类之间的依赖从代码中脱离出来,用配置的方式进行依赖关系描述,由IoC容器负责依赖类之间的创建、拼接、管理、获取等工作。BeanFactory接口是Spring框架的核心接口,它实现了容器的许多核心功能。
Context模块构建于核心模块之上,扩展了BeanFactory的功能,添加了i18n国际化、Bean生命周期控制、框架事件体系、资源加载透明化等多项功能。此外,该模块还提供了许多企业级服务的支持,如邮件服务、任务调度、JNDI定位、EJB集成、远程访问等。ApplicationContext是Context模块的核心接口。
表达式语言模块是统一表达式语言(unified EL)的一个扩展,该表达式语言用于查询和管理运行期的对象,支持设置和获取对象属性,调用对象方法、操作数组、集合等。还提供了逻辑表达式运算、变量定义等功能。使用它就可以方便地通过表达式串和Spring IoC容器进行交互。
AOP模块。
AOP是继OOP之后,对编程设计思想影响最大的技术之一。AOP是进行横切逻辑编程的思想,它开拓了人们考虑问题的思路。在AOP模块里,Spring提供了满足AOP Alliance规范的实现,此外,还整合了AspectJ这种AOP语言级的框架。在Spring里实现AOP编程拥有众多的选择。Java 5.0引入java.lang.instrument,允许在JVM启动时启用一个代理类,通过该代理类在运行期修改类的字节码,改变一个类的功能,实现AOP的功能。
数据访问和集成。
任何应用程序,其核心的问题是对数据的访问和操作。数据有很多表现形式,如数据表、XML、消息等,而每种数据形式又拥有不同的数据访问技术(如数据表的访问既可以直接通过JDBC,也可以通过Hibernate或iBatis)。
Spring站在DAO的抽象层面,建立了一套面向DAO层统一的异常体系,同时将各种访问数据的检查型异常转换为非检查型异常,为整合各种持久层框架提供基础。其次,Spring通过模板化技术对各种数据访问技术进行了薄层的封装,将模式化的代码隐藏起来,使数据访问的程序得到大幅简化。这样,Spring就建立起了和数据形式及访问技术无关的统一的DAO层,借助AOP技术,Spring提供了声明式事务的功能。
Web及远程操作。
该模块建立在Application Context模块之上,提供了Web应用的各种工具类,如通过Listener或Servlet初始化Spring容器,将Spring容器注册到Web容器中。其次,该模块还提供了多项面向Web的功能,如透明化文件上传、Velocity、FreeMarker、XSLT的支持。此外,Spring可以整合Struts、WebWork、Tapestry Web等MVC框架。
Web及远程访问。
Spring自己提供了一个完整的类似于Struts的MVC框架,称为Spring MVC。据说,Spring之所以也提供了一个MVC框架,是因为Rod Johnson想证明实现MVC其实是一项简单的工作。当然,如果你不希望使用Spring MVC,那么Spring对Struts、Tapestry等MVC框架的整合,一定也可以给你带来方便。相对于Servlet的MVC,Spring在简化Portlet的开发上也做了很多工作,开发者可以从中受益。
此外,Spring在远程访问以及Web Service上提供了对很多著名框架的整合。由于Spring框架的扩展性,特别是随着Spring框架影响性的扩大,越来越多框架主动地支持Spring框架,让Spring框架应用涵盖面越来越宽广。
相关推荐
第5章:对Spring容器进行解构,从内部探究Spring容器的体系结构和运行流程。此外,我们还将对Spring容器一些高级主题进行深入的阐述。 第6章:我们从Spring AOP的底层实现技术入手,一步步深入到Spring AOP的...
《Spring3.x企业应用开发实战》是在《精通Spring2.x——企业应用开发详解》的基础上,经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练...
《Spring3.x企业应用开发实战》是在《精通Spring2.x——企业应用开发详解》的基础上,经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练...
《Spring 3.x企业应用开发实战》是一本专注于Spring框架在企业级应用开发方面的实践指南。Spring框架是一个开源的Java平台,它提供了全面的基础架构支持,使得Java开发者可以以更加高效和优雅的方式创建企业级应用...
### Spring 3.x 企业应用开发实战:关键知识点解析 #### 第1章 Spring概述 - **1.1 认识Spring** - **定义与作用**:Spring 是一个开源的轻量级 Java 开发框架,它主要的目标是解决企业级应用开发中的复杂性问题...
本书是在《精通Spring 3.x——企业应用开发详解》的基础上,历时一年的重大调整改版而成的,延续了上一版本“追求深度,注重原理,不停留在技术表面”的写作风格,力求使读者在熟练使用Spring的各项功能的同时透彻...
陈开雄 Spring+3.x企业应用开发实战光盘源码 !!!!压缩包的jar包太多,太大无法上传,请谅解,需要的可以联系我 QQ:349721489 第1章:对Spring框架进行宏观性的概述,力图使读者建立起对Spring整体性的认识。 ...
5. Spring DAO:提供了数据访问对象的异常体系结构,能够简化数据访问代码的编写。 6. Spring Context:是一个配置文件,提供了一个配置Spring应用的上下文环境,是容器的运行基础。 7. Spring Web MVC:是Spring的...
Spring框架是Java平台的一个开源全栈开发框架,用于简化企业级应用程序开发。它的核心特性之一是依赖注入(Dependency Injection)和控制反转(Inversion of Control,IoC),这可以帮助开发者实现轻量级的松耦合...
1.4. Spring体系结构 - **核心容器**:包括Core Container(如BeanFactory和ApplicationContext)和Beans模块,负责对象的创建和管理。 - **数据访问/集成**:包括JDBC、ORM、OXM、JMS和Tx模块,为数据访问提供了...
Hibernate 3.x是与Spring 3.0常搭配使用的版本,它支持JPA(Java Persistence API),并且具有出色的性能和灵活性。 描述中的"org.springframework.oxm-3.1.0.M2"指的是Spring Object/XML Mapping模块,它提供了...
通过理解并熟练掌握以上核心概念和特性,你可以利用Spring Security 3.x有效地构建企业级应用的安全体系,为用户提供安全、可靠的服务。同时,不断关注Spring Security的更新和最佳实践,以应对不断演变的安全威胁。
《深入解析Spring AOP框架——以spring-aop.jar为例》 Spring AOP,全称Aspect Oriented Programming(面向切面编程),是Spring框架的核心部分之一,它为Java开发者提供了强大的面向切面的编程能力。本文将围绕...
015-spring-spring体系结构.mp4 016-spring-ioc-组件和组件管理概念.mp4 017-spring-ioc-核心容器理解.mp4 018-spring-ioc-ioc和di理解.mp4 019-spring-ioc-IoC实践基本步骤.mp4 020-spring-ioc0基于xml的ioc的...
015-spring-spring体系结构.mp4 016-spring-ioc-组件和组件管理概念.mp4 017-spring-ioc-核心容器理解.mp4 018-spring-ioc-ioc和di理解.mp4 019-spring-ioc-IoC实践基本步骤.mp4 020-spring-ioc0基于xml的ioc的...
015-spring-spring体系结构.mp4 016-spring-ioc-组件和组件管理概念.mp4 017-spring-ioc-核心容器理解.mp4 018-spring-ioc-ioc和di理解.mp4 019-spring-ioc-IoC实践基本步骤.mp4 020-spring-ioc0基于xml的ioc的...
015-spring-spring体系结构.mp4 016-spring-ioc-组件和组件管理概念.mp4 017-spring-ioc-核心容器理解.mp4 018-spring-ioc-ioc和di理解.mp4 019-spring-ioc-IoC实践基本步骤.mp4 020-spring-ioc0基于xml的ioc的...
Spring 是一个开源的 Java 应用程序开发框架,由 Rod Johnson 在2003年发起,旨在简化企业级应用的开发。它以其强大的依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-Oriented Programming,简称...
Spring框架是当前Java开发领域中应用最为广泛的轻量级开源框架之一。Spring 5.0.0.RELEASE作为该框架的一个重要版本,包含了大量的新特性和改进,它不仅是对Spring生态系统的一次重大升级,也提供了对于Java最新版本...