Spring 4.3.11.RELEASE文档阅读(一):overview
一、宏观概述中的体会和发现
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的更多相关文章
- Spring 4.3.11.RELEASE文档阅读(二):Core Technologies_IOC
在看这部分内容的时候,想了一些问题: 容器: 1,什么是容器 用来包装或装载物品的贮存器 2,容器能做什么 包装或装载物品 3,为什么需要容器 为什么要使用集装箱?如果没有容器会是什么样? 4,常见的 ...
- Spring 4.3.11.RELEASE文档阅读(二):Core Technologies_AOP
虽然并不是每个问题都有答案,但我想了很多问题.so, just write it down , maybe one day...... AOP: 1,AOP是啥 2,AOP思想是怎么产生的 3,AOP ...
- 转:苹果Xcode帮助文档阅读指南
一直想写这么一个东西,长期以来我发现很多初学者的问题在于不掌握学习的方法,所以,Xcode那么好的SDK文档摆在那里,对他们也起不到什么太大的作用.从论坛.微博等等地方看到的初学者提出的问题,也暴露出 ...
- Spring Boot项目使用Swagger2文档教程
[本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] 前言 Sprin ...
- Node.js的下载、安装、配置、Hello World、文档阅读
Node.js的下载.安装.配置.Hello World.文档阅读
- 我的Cocos Creator成长之路1环境搭建以及基本的文档阅读
本人原来一直是做cocos-js和cocos-lua的,应公司发展需要,现转型为creator.会在自己的博客上记录自己的成长之路. 1.文档阅读:(cocos的官方文档) http://docs.c ...
- Keras 文档阅读笔记(不定期更新)
目录 Keras 文档阅读笔记(不定期更新) 模型 Sequential 模型方法 Model 类(函数式 API) 方法 层 关于 Keras 网络层 核心层 卷积层 池化层 循环层 融合层 高级激 ...
- Spring Boot:整合Swagger文档
综合概述 spring-boot作为当前最为流行的Java web开发脚手架,越来越多的开发者选择用其来构建企业级的RESTFul API接口.这些接口不但会服务于传统的web端(b/s),也会服务于 ...
- Django文档阅读-Day1
Django文档阅读-Day1 Django at a glance Design your model from djano.db import models #数据库操作API位置 class R ...
随机推荐
- 实现strcpy函数
不使用库函数,实现strcpy函数: char *my_strcpy(char *t,char *s){ char *strDest=t; if(t==NULL && s==NULL) ...
- JavaScript_9_循环
1. JavaScript for/in 语句循环遍历对象的属性: 可以遍历数组,也可以遍历一个对象的所有属性 <body> <p>点击按钮,循环遍历对象“person”的属性 ...
- javaSe-反射3
package com.java.chap07.sec04; public class Student { private String name; private Integer age; publ ...
- Java的三大特性之继承
此处我会分为这几个部分来理解继承是怎么样的: 1.区分封装.继承和多态 2.区分限定词的范围 3.区分隐藏.覆盖.重载 4.继承的理解 5.一道面试题的原型 --------------------- ...
- [Docker] Docker安装和简单指令
Docker笔记 安装 sudo apt install docker.io 启动和关闭Docker服务 # 启动Docker服务 sudo service docker start # 关闭Dock ...
- CPP-基础:有关调用约定
在C语言中,假设咱们有这样的一个函数:int function(int a,int b) 调历时只有用result = function(1,2)的方法就能利用这个函数.然而,当高档语言被编译成计算机 ...
- 数据类型-------JavaScript
之前只是简单的学过JavaScript和JQuery,虽然一般的要求都能完成,但并没有深入,这次是看了一个网站,很详细的教学,想重新认识一下JavaScript和JQuery. 本文摘要:http:/ ...
- 01_11_Strtus2简单数据验证
01_11_Strtus2简单数据验证 1. 引入struts标签 <%@taglib uri="/struts-tags" prefix="s" %&g ...
- Python Web 架构
1. Django(全能型)2. Tornado3. BottlePython+Bottle+Sina SAE快速构建网站http://www.cnblogs.com/Xjng/p/3511983.h ...
- APP上线碰到的问题:Non-public API usage
①.Non-public API usage:The app references non-public symbols in XXXX: _UICreateCGImageFromIOSurface ...