第一章 Spring核心(Spring in action,3th)
第一章 Spring核心
Spring中bean的生命周期
Spring框架由6个定义明确的模块组成
核心spring容器:
容器是spring框架最核心的不满分,负责Bean的创建、配置和管理。该模块中,有Bean工厂提供的依赖注入,在Bean工厂之上有几种Spring应用上下文的实现,每一种提供了配置Spring的不同方式。除此外,还提供了许多其他企业服务,如邮件,JNDI访问,EJB集成和调度。所有的Spring模块都构建与核心容器之上。
Spring的AOP模块:
该模块是Spring应用系统开发切面的基础,AOP可以帮助应用对象解耦。借助AOP,可以将遍布应用的关注点(如事务和安全)从他们所应用的对象中解耦出来。
数据访问与集成:
JDBC编写代码有大量样板式代码。Spring的JDBC和DAO(data access objects)模块封装了样板式代码,使数据库代码简洁,也避免因释放资源失败带来的问题。Spring同时集成了许多其他ORM框架(Hibernate,Mybatis,JPA,JDO等)。Spring的事务管理支持所有ORM框架和JDBC。
该模块包含了在JMS之上构建的Spring抽象层,使用消息以异步的方式与其他应用集成。该模块还包含了对象到XML映射的特性。此外,该模块使用Spring AOP为对象提供事务管理服务。
Web和远程调用:
Spring集成了多种流行的MVC框架,同时它的Web和远程调用模块自带MVC框架,提升Web层技术的松散耦合。两种形式:面向传统Web应用的技术Servlet的框架和面向使用Java Portlet API的基于Portlet的应用。
此外,该模块提供构建与其他应用交互的集中远程调用选择RMI、Hessian、Burlap、JAX-WS,同时自带远程调用框架HTTP invoker。
测试:
Spring为JNDI、Servlet和Portlet编写单元测试提供了一个系统的模拟对象实现。对于集成测试,该模块为加载Spring应用上下文中Bean的集合以及与Spring上下文中的Bean进行交互提供了支持。
Spring Portfolio
Spring Web Flow:建立在Spring MVC基础之上,并为基于流程的会话式Web应用(购入车、向导等等)提供支持。
Spring Web Service:将Spring Bean以生命的方式发布为Web Servcie。
Spring Security:利用Spring AOP,Spring Security为Spring应用提供声明式的安全机制。
Spring Integration:提供几种通用的应用集成模式的Spring声明式风格实现。
Spring Batch:对数据进行大量操作。如需开发一个批处理应用,可借助Spring强大的面向POJO的编程模型来使用Spring Batch来实现。
Spirng Social:Spring的一个社交网络扩展模块。
Spring Mobile:Spring新的扩展模块用于支持移动Web应用开发。与Spring Mobile相关的是Spring Android项目。这个新项目旨在通过Spring框架为开发基于Android设备的本地应用提供某些简单的支持。最初该项目提偶拱了Spring的RestTemplate版本可以用于Android应用。
Spring Dynamic Modules:整合了Spring的生命是依赖注入和OSGI的动态组件模型。使用Spring-DM,可以模块化的方式构建应用,这些模块式清晰地、高内聚、低耦合的,并在OSGi框架内以声明的方式发布和消费服务。现已捐献给Eclipse作为OSGi的Gemini成员项目,被称为Gemini Blueprint。
Spring LDAP:除了依赖注入和AOP,另一个贯穿Spring框架的常用技术是创建基于模板的抽象层来封装多余的复杂操作,如JDBC或者JMS消息处理。Spring LDAP为我们带来了Spring峰哥的基于模板的LDAP访问,消除了因使用LDAP而产生的样板式代码。
Spring Rich Client:是一个富应用工具箱,为Swing赋予了Spring魔力。
Spring .NET:面向.NET平台,提供相同的松耦合和面向切面的Spring特性。
Spring-Flex:Adobe的Flex和AIR为富互联网应用开发提供一种最强大解决方案。当这些富用户界面需要与服务端的Java代码进行交互时,他们使用一宗被称为BlazeDS的远程访问消息技术。Spring-Flex集成包使得Flex和AIR应用可以使用BlazeDS与服务端的Spring Bean进行同行。它还包含Spring Roo的阔爱站,可用于快速开发Flex应用。
Spring Roo:提供一个可快速开发Spring应用的交互式工具环境,同事融入了最近几年所形成的最佳实践。
Spring Extensions、Python语言的Spring实现、Blob storage、db4o和CouchDB的持久化框架、基于Spring的工作流管理类库、Spring Security的Kerberos和SAML的扩展。