Spring4概述性知识(一)

#Spring的历史

  • 2004年发布以第一个版本
  • 2006年从v1.0版本升级到v2.0(新增XML命名空间,AspectJ及Spring MVC等功能),2009年从v2.5升级到了v3.0,新增了SpEL,OXM,REST,验证/格式化等功能,全面支持java5
  • 2013年从v3.0升级到了v4.0,新增了Groovy Bean配置,HTML5/WebSocket支持等功能,全面支持Java8.0
  • 2016 年发布Spring Framework 5.0 里程碑版本(后续仍需学习)

#Spring带来的好处 Spring提供了EJB类似服务的同时尽可能的简化了开发,遵循了“好的涉及由于具体实现,代码应该易于测试”这一个理念,带给我们一个易于开发,便于测试且功能恰u你的开发框架,好处有如下几点:

  • SpringIoC方便解耦,简化开发。
  • AOP编程支持,实现了面向切面的编程,实现了OOP无法实现的功能。
  • 声明式事务的支持。开发者可以从繁琐的事务管理代码中脱离出来,声明式事务灵活的进行事务管理,提高开发效率和质量。
  • 方便程序的测试。可以用非容器依赖的编程方式进行几乎所有的测试工作。测试不再是安规的操作,而是随手可得的事情。
  • 方便集成各种优秀的框架。Spring不排斥各种优秀的框架
  • 降低Java EE API的使用难度。Spring对很对难用的Java EE API(如JDBC,JavaMail,远程调用等)提供了一个薄层的封装,通过Spring的简单的封装,这些API的调用就会很方便,极大的降低了使用的难度。
  • Java的源代码式经典的学习范例。代码的巧妙涉及,结构的清晰,处处体现大师级的水准。

#Spring体系结构 Spring的框架结构大致如下:

Spring框架结构

IoC

  • Spring核心模块实现了IoC的功能,用配置的房间将类与类之间的依赖从代码中脱离出来。IoC负责将类与类之间的创建,拼接,管理,获取等工作。BeanFactory接口是Spring框架的核心接口,它实现了容器的许多核心的功能。

    Context模块构建再核心模块之上,拓展BeanFactory的功能,添加i18n国籍化,Bean生命周期控制,框架时间体系,资源加载透明化等多项功能。提供了企业级服务的支持,比如邮件服务,任务调度,JNDI获取,EJB集成,远程访问等。ApplicationCtenxt是Context模块的核心接口。

    表达式语言模块是统一表达式语言的(Unifier EL)的一个拓展,该表达式语言用于查询和管理运行期的对象,支持设置/获取对象属性,调用对象方法,操作数组,集合等。该模块还提供了逻辑表达式运算,变量定义等功能,可以方便的通过表达式串和Spring IoC容器进行交互。

AOP

  • AOP是OOP之后,对编程思想影响极大的技术之一。AOP是进行横切逻辑的编程思想,它开拓了考虑问题的思路。满足AOP Alliance规范,整合了AspectJ这种AOP框架。Spring实现AOP编程有总舵的选择。Java5引入了java。lang.instrument,允许再JVM启动一个代理,通过核心代理类再运行期修改类的字节码,改变一个类的功能,从而实现AOP的功能。

数据访问和集成

  • 应用的核心问题是对数据的访问和操作。数据形式有多种,如数据表,XML,消息等,每种数据形式都用于不同的数据访问技术(如数据表的访问及可以直接同JDBC,也可以是使用其他的ORM框架)

    Spring站在DAO的抽象层,建立一套面向DAO的脱衣的异常体系,将各种访问疏忽的检查型异常转换为非检擦型异常,为整合各种持久层框架提供基础。其次,Spring通过模块化技术对各种数据访问技术进行薄层的封装,将模式化的代码隐藏起来,是数据访问的程序得到大幅度的简化。这样Spring就建立起了和数据形式及访问技术无关的统一的DAO,借助AOP技术,Spring提供了声明式事务的功能。

Web及远程操作

  • 该模块建立在Application Context模块之上,提供了Web应用的各种工具类,如通过Listener或者Servlet初始化的Spring容器,将Spring容器注册到Web容器中。该模块还提供了多项面向Web的功能,透明化文件上传,Velocity,FreeMarker,XSLT的支持。此外,Spring可以整合Struts,WebWork等MVC框架。

Web及远程访问

  • Spring自己提供了一个完整得类似于Struts得MVC框架--SpringMvc

WebSocket

WebSocket提供了一个在Web应用中高效得,双向得通信,考虑了客户端和夫妻之间得高频和低延时消息交换。

#Spring4新特性

  • 全面支持了Java8.0
  • 核心容器的增强 支持泛型依赖注入 CgLib代理类的加入不需要提供空参构造函数 在基于Java的配置里面添加@Descriotion,@Conditional实现Bean的田间过滤,@Lazy注解解决Bean验实依赖注入,支持Bean被注入List或者Array是可以使用@Ordered排序

转载于:https://my.oschina.net/u/3474937/blog/2231168

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值