《Spring3实战》摘要(1)---spring简介

spring的基本理念就是简化Java开发,spring采取了一下4种关键策略:
- 基于POJO的轻量级和最小侵入性编程;
- 通过依赖注入和面向接口编程实现松耦合;
- 基于切面和惯例进行声明式编程;
- 通过切面和模板减少样板式代码。

第一章 Spring之旅

1.1 Spring容器

  1. 在基于Spring的应用中,应用对象生存于Spring容器中。Spring容器创建对象,装配它们,配置它们,管路它们的整个生命周期。
  2. Spring自带了几种容器实现,可以归为两种不同的类型。Bean工厂(由org.springframework.beans.factory.BeanFactory接口定义)是最简单的容器,提供基本的DI(依赖注入Dependency Injection)支持。应用上下文(由org.springframework.context.ApplicationContext接口定义)基于BeanFactory之上构建,并提供面向应用的服务,例如从属性文件解析文本信息的能力,以及发布应用时间给感兴趣的时间监听者的能力。

1.2 Spring应用上下文和模块

1.2.1 Spring常用的3种应用上下文(第七章)

应用上下文 说明
ClassPathXmlApplicationContext 从类路径下的XML配置文件中加载上下文定义,把应用上下文定义文件当作类资源
FileSystemXmlApplicationContext 读取文件系统下的XML配置文件并加载上下文定义
XmlWebApplicationContext 读取Web应用下的XML配置文件并装载上下文定义

加载应用上下文举例:

//从文件系统中加载应用上下文
ApplicationContext context = new FileSystemXmlApplicationContext("c:/applicationContext.xml");
//从类路径(包含JAR文件)下加载应用上下文
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
//加载上下文,并访问bean
ApplicationContext ctx = new ClassPathXmlApplicationContext("com/spring/springdemo/bean/springidol/spring-idol.xml");
<!-- duke是在spring-idol.xml文件中配置的一个实现了Performer接口的类的bean -->
Performer performer = (Performer)ctx.getBean("duke");
performer.perform();

1.2.2 Spring模块

这里写图片描述

  • 核心Spring容器
    • 容器是Spring框架最核心的部分,它负责Spring应用中的Bean的创建、配置和管理。在该模块中,Bean工厂提供依赖注入(第二章),应用上下文提供了配置Spring的不同方式。该模块也提供了例如邮件、JNDI访问、EJB继承和调度等许多企业服务。
  • Spring的AOP模块
    • 在AOP模块(第4章)中,Spring对面向切面编程提供了丰富的支持。借助AOP,可以将遍布应用的关注点(例如事务和安全)从他们所应用的对象中解耦出来。
  • 数据访问与集成
    • 使用JDBC编写代码通常会导致大量的样板式代码。Spring的JDBC和DAO(data access objects)模块封装了这些样板式代码,使我们的数据库代码鞭策简单明了,还可以避免因为释放数据库资源失败而引发的问题。
    • Spring提供了ORM(object-relational mapping)模块。对许多流行的ORM框架进行了集成,Spring的事务管理(第6章)支持所有的ORM框架以及JDBC。
    • 本模块同样包含了在JMS之上构建的Spring抽象层,使用消息以异步的方式与其他应用集成。
  • Web和远程调用
    • Spring集成了多种流行的MVC框架(第七章),但它的Web和远程调用模块自带了一个强大的MVC框架。该框架提供了两种形式:面向传统Web应用的基于Servlet的框架和面向使用Java Portlet API的基于Portlet的应用。
    • 除了面向用户的Web应用,该模块还提供了构建与其他应用交互的几种远程调用的选择。Spring远程调用服务(第10章)集成了RMI、Hessian、Burlap、JAX-WS,同时Spring还自带了一个远程调用框架:HTTP invoker。

1.3 Spring的新特性

1.3.1 Spring2.5新特性

Spring2.5的重大意义在于拥抱注解驱动开发,Spring2.5之前的版本都是采用基于XML的配置。Spring2.5引入了几种使用注解额方式,显著减少了配置Spring所需要的XML信息。

  • 使用@Autowired实现基于注解驱动的依赖注入和使用@Qualifier实现细粒度的自动装配(auto-wiring)控制。
  • 支持JSR-250注解,包括支持命名资源依赖注入的@Resource,以及对生命周期方法支持的@PostConstruct和@PreDestory。
  • 自动扫描使用@Component注解(或其他构造型注解)所标注的Spring组件。
  • 一个全新的基于注解驱动的SpringMVC编程模型。
  • 基于JUnit4和注解的一个新的集成测试框架。
  • 完全支持Java 6和Java EE 5。
  • 通过Bean的名字来编程切面的新的Bean命名切入点表达式。
  • 内嵌支持AspectJ的类加载器织入。
  • 新的XML命名空间,包括配置应用上下文细节的context命名空间和配置消息驱动Bean的jms命名空间。
  • 支持在SqlJdbcTemplate中使用命名参数。

1.3.2 Spring3.0新特性

从3.0版本开始,Spring要求java 5或更高版本,不再支持Java 4。

  • Spring MVC 全面支持Rest,Spring MVC 控制器响应REST风格的URL并返回XML、JSON、RSS或者其他适宜的响应。(第11章)。
  • 新的表达式语言把Spring的依赖注入带入了一个新的高度,允许注入各种来源,包含其他Bean和系统属性。(第2章)
  • Spring MVC 新的注解,包含@CookieValue和@RequestHeader,分别从Cookie和请求头中获取值。(第7章)
  • 一个新的XML命名空间,用来减少Spring MVC 配置。
  • 支持基于JSR-302注解的声明式校验。
  • 支持新的JSR-330依赖注入规范。
  • 通过注解驱动声明异步和调度方法。
  • 一个新的注解驱动的配置模型,几乎可以避免使用XML进行Spring配置。(第2章)
  • Spring Web Service 项目的OXM功能已被迁移到Spring框架核心。

1.3.4 Spring Portfolio

Spring远不止Spring框架所带来的那些功能。整个Spring Portfolio包括多个构建于核心Spring框架之上的框架和类库。概括地说,整个Spring Portfolio几乎为每一个领域的Java开发都提供了Spring编程模型。

1 Spring Web Flow

这里写图片描述

2 Spring Web Service

这里写图片描述

3 Spring Security

这里写图片描述

4 Spring Integration

这里写图片描述

5 Spring Batch

这里写图片描述

6 Spring Social

这里写图片描述

7 Spring Mobile

这里写图片描述

8 Spring Dynamic Modules

这里写图片描述

9 Spring LDAP

这里写图片描述

10 Spring Rich Client

这里写图片描述

11 Spring .NET

这里写图片描述

12 Spring-Flex

这里写图片描述

13 Spring Roo

这里写图片描述

14 Spring Extensions

这里写图片描述

发布了66 篇原创文章 · 获赞 37 · 访问量 11万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章