Spring3.X 第1章 概述

2014年9月30日 星期二 23时52分36秒
第一章 Spring概述


1.1 认识Spring
        以 IoC(Inverse of Control 反转控制) 和AOP(Aspect of Programming 面向切面编程)为内核。
        Rod Johnson
        书籍《Export One-to-One J2ee Design and Development》
            《Export One-to-One J2ee Development without EJB》
        interface21框架

1.2   关于SpringSource   

1.3   Spring带给我们什么
        1.0 方便结构,简化开发
        2.0 AOP编程的支持
        3.0 声明式事务的支持
        4.0 方便程序测试
        5.0 方便集成各种优秀的框架
            6.0 降低Java EE API的使用难度
        7.0 Java源码是经典学习范例

1.4   Spring体系结构
        Srping整个框架按其所属功能可以划分为5个主要模块:
        1.0 数据访问和集成:JDBC,ORM,OXM,JMS,事务管理
        2.0 Web及远程操作:MVC,Portlet,Web Service
        3.0 测试框架
        4.0 AOP:Spring AOP,Aspects,Instrument
        5.0 IOC:Bean,Context,表达式语音


        各个功能介绍:
        一 IOC:
         Spring核心模块实现了IOC功能,它将类与类直接的依赖从代码中脱离出来,用配置的方式进行依赖关系描述。由IOC容器负责依赖类直接的创建,拼接,管理,获取等工作。BeanFactory接口是Sping框架的核心接口。它实现了容器的许多核心功能。
         Context模块构建于核心模块之上,扩展了BeanFacotry的功能,添加了i18n国际化,Bean生命周期控制,资源加载透明化等多项功能,此外该模块还提供了许多企业级服务的支持,如邮件服务,任务调度,JNDI定位,EJB集成,远程访问等,ApplicationContext是Context模块的核心接口。
        表达式语音是统一表达式语音(unified EL)的扩展。改表达式用于查询和管理运行期的对象,支持设置和获取对象属性,调用对象方法,操作数组,集合等。还提供了逻辑表达式运算,变量定义等功能。使用它就可以方便地通过表达式串和Spring IOC容器进行交互。
       
        二 AOP模块
         AOP是进行横切逻辑编程的思想。在AOP模块里,Spring提供了满足AOP Alliance规范的实现,此外Java5.0 引入java.lang.instrument,允许JVM启动时启用一个代理类,通过该代理类在运行期修改该类的字节码,改变一个类的功能,实现AOP的功能。
       
        三 数据访问和集成
         Spring站在DAO的抽象层面,建立了一套面向DAO层统一的异常体系,同时将各种访问数据的检查型异常转换为非检查型异常,为整合各种持久层框架提供基础。
       
        四 Web及远程操作
         该模块建立在Application Context模块之上,提供了Web应用的各种工具类,如通过Listener或Servlet初始化Spring容器,将Spring容器注册到Web容器中。其次,该模块还提供了许多面向Web的功能,如透明化上传文件, Velocity,FreeMarker,XSLT的支持

        五 Web及远程访问
         Spring自己提供了一个完整的类似Struts的MVC框架,称为Spring MVC。

1.5 Spring 3.0 新功能
        基于Java5.0 语言特性,提供了EL(Expression Language)表达式和REST的支持,同时还提供依赖注入和Bean验证的规范
       
        1.5.1 核心API更新到Java 5.0
        1.5.2 Spring表达式语言
                在Spring3.0中,Spring提供了SpEL脚本语言,它和统一 的EL类似,但功能更为强大。
        1.5.3 可通过Java类提供IOC配置信息
                Spring拥有众多的子项目,Spring在升级的时候经常将那些成熟的子项目整合到Spring主项目中。 Spring JavaConfig是一个通过Java类提供Spring配置元信息的子项目,Spring3.0已经将其纳入到Spring框架的核心模块中。
                在早期的版本中,Spring仅提供XML的配置方式,在Spring2.5提供了基于注解的配置方式,在Spring3.0中则提供了基于Java类的配置方式。这三种配置方式无非是形式上的差别,最终提供的都是Spring配置的元数据。他们在不同的应用场景下降表现出各自的优势。
        1.5.4 通用类型转换系统和属性格式化系统
                引入了一种通用的“类型转换系统”,Spring的SpEL目前使用该系统进行类型转换。也可以在Spring容器及DataBinder的Bean属性绑定时使用。

        1.5.5 数据访问层新增OXM功能
                来自于Spring Web Service项目的OXM(Object to  XML ,对象XML映射)已经被移到Spring的核心框架中。OXM类似于ORM,他通过元数据描述对象和XML转换的映射。他对应的包是org.springframework.oxm.
        1.5.6 Web层的增强
                Spring MVC 提供了对REST风格编程的支持。在服务器端提供了一些易用的REST注解。在调用端则提供了RestTemplate模板类。服务端和调用端都通过HttpConverter进行对象和HTTP请求/响应的转换。
                在Spring2.5中引用了一套Spring MVC注解,如@Controller, @RequestMapping,等。 Spring3.0 继续完善这一注解体系,新增了@CookieValue,@RequestHeaders的注解,可以直接绑定Cookie及请求报文的数据。

        1.5.7 其他
                1.0 声明式模型验证:Spring3.0对模型校验进行了很多的增强。首先,他全面支持JSR-303的Bean验证API;其次可以使用Spring的DataBinder对Bean进行校验;最后Spring MVC支持声明式验证;
                2.0 对JavaEE6的支持:Spring3.0可以使用@Async或EJB3.1的@Asynchronous注解异步地调用某个方法。
                3.0 支持内嵌数据库:提供便捷的方法支持内嵌数据库引擎,如 HSQL,H2,Berby。

1.6 Spring对Java版本的要求
        Spring3.0基于Java SE5.0 ,全面支持Java SE6.0. 运行Spring必须使用JDK5.0以上的版本,如果要编译Spring3.0 则必须使用JDK6.0 。

1.7 如何获取Spring
       

1.8 小结
       


 

猜你喜欢

转载自listen-raining.iteye.com/blog/2124247
今日推荐