一、宏观概述中的体会和发现

Spring是组件式的框架,它允许我们只使用其一小部分。Spring所做的工作,就是不断的简化我们的操作。比如它的IOC容器,当我们自己应用设计模式,比如说:建造者、工厂、单例等,也可以实现IOC的功能,但正如Spring的使命一样:它帮我们进行封转简化,我们只需要关注业务逻辑实现!

由于我个人也是个java EE的guardians,我一个很深的体会就是:关于java EE的各种规范的实现和集成,Spring都有一个统一的入口去找到它,并且提供了对应的demo工程,而对于java EE技术栈来说,我,至今未能找到这么一个入口!  很多人说Spring是个轻量级的框架,做不了企业级的应用开发,但首先是Spring也支持企业级应用开发了,其次是随着RPC-RMI-SOA-JMS等的发展,我们真的还需要一个庞然大物吗?

可是,我为什么依然使用java EE技术栈呢?  I am thinking

1,测试  TestNG:Spring不仅集成了Junit,更集成了TestNG

2,命名缩写Spring-*:当使用* 代替具体的包时,会根据使用情况,下载对应的jar包

3,统一版本:Spring-framework-bom:当我们在使用Spring时,可能会出现所定义的jar version不一致,导致jar冲突。Spring-framework-bom相当于maven的pom工程,在bom包中定义版本,其他任何关于Spring的依赖,均可不必指定版本。

4,spring-core:唯一依赖Commons-logging的组件。如果要禁用Commons-logging,在此包使用exclusions去除依赖,并添加能够实现JCL API的包。如果要使用Commons-logging,可以直接指定scope为runtime。

注意:1,如果使用类似于SLF4J去实现JCL API,那我们可能还需要引入一个桥梁性质的包去连接JCL;而由于SLF4J依赖绑定log4j,所以我们需要提供3个依赖包:JCL-over-slf4j、slf4j-log4j12、log4j。2,logback实现了SLF4J,所以可以仅使用JCL-over-slf4j、logback-classic

二、Spring4版本变更的总体说明

Spring版本主要变更:2004年,第一个版本发布;Spring 2.0提供XML命名空间和AspectJ支持;Spring2.5拥抱注解驱动;Spring3.0在其框架中应用java 5+的强特性,比如:基于java @Configuration模型;Spring4.0首次全面支持java 8特性(当使用Spring4的时候,java最低版本为 java 6)

Spring4.0 做了什么:

1,增强了学习Spring的体验度:除了文档中有详细介绍,并且有网站提供了很多基于Spring的学习项目

2,移除了所有Deprecated包和方法,并且所有第三方依赖包所使用的版本,都最少是2010年后发布的,必须注意的是:Spring4 使用Hibernate validator4.3+ ,支持Jackson2.0+ (Jackson1.8/ 1.9在Spring3.2时支持,现在已经废弃)

3,Spring4 仍然支持java 6,但推荐使用java 7或者java 8

4,核心容器功能增强:将泛型视作规范的格式;CGLIB代理不要需要默认的构造方法;注入时可以使用@Lazy注解;当Beans被注入到lists或者arrays时,Beans可以被排序,注解@Order和@Ordered

5,Web普遍增强:保留对于Servlet2.5的支持,但Spring4关注Servlet3.0+环境。 如果需要使用Spring MVC 测试框架,必须确认Servlet3.0环境;可以使用@RestController注解去避免每个@RequestMapping方法都使用@ResponseBody;增加AsyncRestTemplate类,允许Rest客户端非阻塞异步调用

6,支持WebSocket,SockJS,和STOMP消息

7,提升测试功能

Spring4.1增强了那些功能:

1,增强JMS:异步请求操作支持JmsTemplate;监听者优先级配置<jms: listener>;消息监听者容器配置覆盖BackOff ;支持JMS2.0消费者共享......

2,增强Caching:运行时缓存解析 CacheResolver,不再强制要求定义缓存结果的value参数;更多缓存配置:resolver、manager、generator;缓存异常捕捉CacheErrorHandler......

3,增强Web:Jackson中@JsonView直接支持序列化,等价于@ResponseBody和ResponseEntity;Jackson对于Jsonp支持;controller生命周期可配;3种新的HttpMessageConverter选项配置......

4,增强WebSocket消息:SockJS客户端支持;WebSocket新增scope选项;STOMP/WebSocket监控信息集成和记录;消息优化......

5,增强测试

spring4.2、Spring4.3增强功能 略述,自己看文档吧!

Spring 4.3.11.RELEASE文档阅读(一):overview的更多相关文章

  1. Spring 4.3.11.RELEASE文档阅读(二):Core Technologies_IOC

    在看这部分内容的时候,想了一些问题: 容器: 1,什么是容器 用来包装或装载物品的贮存器 2,容器能做什么 包装或装载物品 3,为什么需要容器 为什么要使用集装箱?如果没有容器会是什么样? 4,常见的 ...

  2. Spring 4.3.11.RELEASE文档阅读(二):Core Technologies_AOP

    虽然并不是每个问题都有答案,但我想了很多问题.so, just write it down , maybe one day...... AOP: 1,AOP是啥 2,AOP思想是怎么产生的 3,AOP ...

  3. 转:苹果Xcode帮助文档阅读指南

    一直想写这么一个东西,长期以来我发现很多初学者的问题在于不掌握学习的方法,所以,Xcode那么好的SDK文档摆在那里,对他们也起不到什么太大的作用.从论坛.微博等等地方看到的初学者提出的问题,也暴露出 ...

  4. Spring Boot项目使用Swagger2文档教程

    [本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] 前言 Sprin ...

  5. Node.js的下载、安装、配置、Hello World、文档阅读

    Node.js的下载.安装.配置.Hello World.文档阅读

  6. 我的Cocos Creator成长之路1环境搭建以及基本的文档阅读

    本人原来一直是做cocos-js和cocos-lua的,应公司发展需要,现转型为creator.会在自己的博客上记录自己的成长之路. 1.文档阅读:(cocos的官方文档) http://docs.c ...

  7. Keras 文档阅读笔记(不定期更新)

    目录 Keras 文档阅读笔记(不定期更新) 模型 Sequential 模型方法 Model 类(函数式 API) 方法 层 关于 Keras 网络层 核心层 卷积层 池化层 循环层 融合层 高级激 ...

  8. Spring Boot:整合Swagger文档

    综合概述 spring-boot作为当前最为流行的Java web开发脚手架,越来越多的开发者选择用其来构建企业级的RESTFul API接口.这些接口不但会服务于传统的web端(b/s),也会服务于 ...

  9. Django文档阅读-Day1

    Django文档阅读-Day1 Django at a glance Design your model from djano.db import models #数据库操作API位置 class R ...

随机推荐

  1. 【Python图像特征的音乐序列生成】生成伴奏旋律(附部分代码)

    做了半天做的都是一些细枝末节的东西,嗨呀. 伴奏旋律是Ukulele和弦,MIDI发音乐器是Guitar.在弹唱的时候,Ukulele和弦就是伴奏. 我们以创建<成都>伴奏为例: 节奏型: ...

  2. 【Python图像特征的音乐序列生成】关于mingus一个bug的修复,兼改进情感模型

    mingus在输出midi文件的时候,使用这样的函数: from mingus.containers import NoteContainer from mingus.midi import midi ...

  3. UI EventSystem事件监听

    Unity5.0 EventSystem事件系统的详细说明 一.EventSystem对象的说明 当我们在场景中创建任一UI对象后,Hierarchy面板中都可以看到系统自动创建了对象EventSys ...

  4. spring maven 包

    <spring-framework.version>.RELEASE</spring-framework.version> <dependency> <gro ...

  5. 【转】iOS-生成Bundle包-引入bundle-使用bundle

    在我们使用第三方框架时,常常看到XXX.bundle的文件. 我们找到该文件,显示包内容,大致看到很多资源文件:图片.配置文本.XIB文件……   什么是Bundle文件? 简单理解,就是资源文件包. ...

  6. Paper: TranE

    论文标题:Translating Embeddings for Modeling Multi-relational Data 标题翻译:多元关系数据翻译嵌入建模 摘要: 考虑多元关系数据的实体和关系在 ...

  7. 传输途径 ath9k层到硬件层

    这里只写了ath9k层到虚拟硬件层的一些东西,mac层的没有整理. 传输途径主要从ath9k_tx() --->ath_tx_start() --->ath_tx_send_normal( ...

  8. oracle centos 重启后报错ORA-12514, TNS:listener does not currently know of service requested in connect descriptor

    oracle centos 重启后报错ORA-12514, TNS:listener does not currently know of service requested in connect d ...

  9. ios sinaweibo 客户端(一)

    上一篇sina微博Demo已经完成的认证,下面就开始进入微博相关内容的加载及显示.其实主要的工作就是调用微博API 加载相关的json数据,然后进行解析,然后在界面中进行组织好在tableview中进 ...

  10. NSString 使用 copy、strong

    // 首先定义2个属性 @property (nonatomic, strong) NSString *stStr; @property (nonatomic, copy) NSString *coS ...