Spring 和 JAVA 的牵绊

Spring框架是一个开放源代码J2EE应用程序框架,是针对bean的生命周期进行管理的轻量级容(lightweight container)。Spring提供了功能强大IOC、AOP及Web MVC等功能。Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等Web框架组合使用,并且可以与 Swing等桌面应用程序AP组合。

Spring Framework 和 JAVA 版本的牵绊

Spring Framework 后续简称为Spring,下面是Spring版本所需的Java最低版本

Spring Framework JavaSE JavaEE
1.X 1.3+ 1.3+
2.X 1.4.2+ 1.3+
3.X 5+ 1.4–5+
4.X 6+ 6–7
5.X 7+ 7

Spring版本,1.X.X

  • 1 - 主版本,重大版本更新

  • X,从版本,通常提供一些不是很重要特性,维持在原有版本基础上进行更新

  • X,次要版本,一般进行一些bug修复或者部分特性提升

  • SpringFramework早期被称为interface21。Java1.3开始引入动态代理。引入接口进行动态代理,是Spring实现AOP的重要环节。Java EE 1.3对应servlet2.3版本支持servlet事件,Spring支持事件,servlet事件和Spring的事件都是基于Java的标准事件
  • Spring 2.x 支持Java安全部分 ,Java 1.4.2支持NIO
  • Spring 3 引入注解和枚举,确定了Spring的内核,如注解驱动,事件驱动,AOP支持,Java5开始支持注解及枚举
  • Spring 4 主要是针对3进行提升,通过注解以及对Java8支持的提升。最低要求是Java 6,目的是为了更多支持,从Spring 4开始支持springboot1.X。可以这么说,从Spring 4开始,逐步形成Spring的体系
  • Springboot 2.X 是基于Spring5

Java 版本语法特性 和 Spring版本之间的关联

spring的优点,版本强迫跟随Java新特性的升级

Java版本 Java语法特性 spring版本 代表实现
5 注解(Annotation) 1.2+ @Transactional
5 枚举 1.2+ Propagation
5 for-each语法 3.0+ AbstractApplicationContext
5 自动装箱/拆箱(AutoBoxing) 3.0+
5 泛型(Generic) 3.0+ ApplicationListener
6 接口@Override 4.0+
7 Diamond 5.0+ DefaultListableBeanFactory
7 try-with-resources语法 5.0+ ResourceBundleMessageSource
8 lambda语法 5.0+ PropertyEditorRegistrySupport

1. Spring 与 Java 核心API 之间的关系

API类型 spring支持版本 代表实现
反射(Reflection) 1.0+ MethodMatcher
Java Beans 1.0+ CachedIntrospectionResults
动态代理(Dynamic Proxy) 1.0+ JdkDynamicAopProxy
XML处理(DOM,SAX…) 1.0+ XmlBeanDefinitionReader
JDBC(4.0) 1.0+ JdbcTemplate
Java管理扩展(JMX) 1.2+ @ManagedResource/@Transactional
Instrumentation 2.0+ InstrumentationSavingAgent
Common Annotation 2.5+ CommonAnnotationBeanPostProcessor
并发框架(J.U.C) 3.0+ ThreadPoolTaskScheduler
格式化(Formatter) 3.0+ DateFormatter
JAXB 2.0 3.0+ Jaxb2Marshaller
Fork/Join框架 3.1+ ForkJoinPoolFactoryBean
NIO 2 4.0+ PathResource
Dare and Time API 4.0+ DateTimeContext
可重复的 Annotations 4.0+ @PropertySources
Scripting in JVM 4.2+ StandardScriptFactory
CompletableFuture(J.U.C) 4.2+ CompletableToListenableFutureAdapter
Java compiler API 5.0+ TestComplier(单元测试)
可插拔注解处理API 5.0+ @Indexed
Java compiler API 5.0+ TestComplier(单元测试)
可插拔注解处理API 5.0+ @Indexed

Java 6

  • Javac进程是由Java complier api接口实现;
  • Java 6支持脚本语言在Java上部署

java 7

  • NIO 2.0主要提供了文件/路径的抽象以及异步NIO的支持
  • Fork/Join是在juc上做补充,提供符合join模型,帮助实现复杂的并行计算
  • Invokedynamic字节码支持动态语言如:groovy,kotlin,Java 7 以后支持动态语言在Jvm上运行

java 8

  • ComletableFuture主要是对Future做了一些支持,比如Reactive的支持

2. Spring 和 JavaEE web相关技术方面

Java 6 之后引入JSR规范,括号内是JSR编码

JSR规范 spring支持版本 代表实现
Servlet + JSP(035) 1.0+ DispacherServlet
JSTL(052) 1.0+ JstlView
JavaServer Faces(127) 1.1+ FacesContextUtils
Portlet(168) 2.0–4.2 DispatcherPortlet
SOAP(067) 2.5+ SoapFaultException
WebServices(109) 2.5+ CommonAnnotationBeanPostProcessor
WebSocket(356) 4.0+ WebSocketHandler
  • DispatcherServlet的核心是Servlet应用,SpringFramerworkServlet扩展,以及视图的渲染
  • JSTL在jsp基础上增加标签的扩展,如struts标签,以及Spring自己的jsp的tag(标签)、
  • JavaServer Face,Java的另一套渲染技术,主要是视图渲染技术,通过服务端保存状态等等
  • Portlet,和servlet对应,servlet是web方面,protlet是门户方面
  • SOAP, webservice协议的封装

3. Spring 和 Java EE 数据存储相关

JSR规范 spring支持版本 代表实现
JDO(12) 1.0–4.2 JdoTemplate
JTA(907) 1.0+ JtaTransactionManager
JPA 2.0+ JpaTransactionManager
Java Caching API(107) 3.2+ JCacheCache
  • JDO/JTA/JPA是SQL方向的,即关系型数据库
  • Java Caching API是NoSql方向的,即key-value类型存储

4. Spring 和 JavaEE Bean 相关

JSR规范 spring支持版本 代表实现
JMS(914) 1.1+ JmsTemplate
EJB 2.0(19) 1.0+ AbstarctStatefulSessionBean
Dependency InJection for Java (330) 2.5+ AutowriedAnnotationBeanPostProcessor
Bean Validation(303) 3.0+ LocalValidatorFactoryBean
  • JMS,消息驱动bean,Spring支持到 JMS 1.2 相关版本
  • EJB,主要代表bean,有状态的bean/无状态bean/消息驱动bean/session bean/持久化bean

Spring 和 JAVA 的牵绊相关推荐

  1. com/opensymphony/xwork2/spring/SpringObjectFactory.java:220:-1问题出现的原因及解决办法

    转自:https://blog.csdn.net/shinchan_/article/details/37818927 com/opensymphony/xwork2/spring/SpringObj ...

  2. 解决Spring的java项目打包后执行出现“无法读取方案文档...“、“原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是...”问题

    解决Spring的java项目打包后执行出现"无法读取方案文档..."."原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是..."问题 ...

  3. 最近在研究Spring Data JPA,大家都来说说感受~~ - Spring,JPA - Java - ITeye论坛

    最近在研究Spring Data JPA,大家都来说说感受~~ - Spring,JPA - Java - ITeye论坛 最近在研究Spring Data JPA,大家都来说说感受~~ - Spri ...

  4. Spring的Java配置方式

    Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1     @Configuration 和 @Bean Spring的Java配置方式是通过 @Configuration ...

  5. SpringBoot_02 Spring的Java配置方式

    1.   Spring的Java配置方式 Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1.1. @Configuration 和 @Bean Spring的Java配置方 ...

  6. 常用注解[spring 的 java 配置] ||springboot 热部署

    常用注解[spring 的 java 配置] 回顾学过的 spring 的注解 @Controller @RestController @Service @Repository @Component ...

  7. spring cloud java b2b2c o2o分布式 微服务电子商务平台

    大型企业分布式互联网电子商务平台,推出PC+微信+APP+云服务的云商平台系统,其中包括B2B.B2C.C2C.O2O.新零售.直播电商等子平台. 需要JAVA Spring Cloud大型企业分布式 ...

  8. Spring Security Java Config Preview--官方

    原文地址:[1]https://spring.io/blog/2013/07/02/spring-security-java-config-preview-introduction/ [2]https ...

  9. spring异常 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderServlet

    spring异常 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderServlet 情况1: ...

最新文章

  1. WIN7、XP局域网共享问题和重置IP协议
  2. Windows启动过程
  3. Java开发代码规范之编程规约---命名风格
  4. C#开发微信公众平台-就这么简单(附Demo)(转)
  5. An HTML5 presentation builder — Read more
  6. python 字符串函数总结
  7. python 中locals() 和 globals()的区别
  8. [Java] 蓝桥杯ADV-188 算法提高 排列数
  9. windows进程管理问题
  10. 量化感知训练_一文速览EMNLP 2020中的Transformer量化论文
  11. Ubuntu下添加打印机---之寻找设备lpinfo
  12. 最近好颓废啊,改过自新就从收拾自己的东西开始吧
  13. 小米路由器r3gv2/r4a Lean的OpenWrt固件
  14. 大数运算python编程实现
  15. 第十二章:如何制定里程碑
  16. 完美mix-in(混入)模式———js对象想怎么玩就怎么玩
  17. lingo入门教程之二 --- 集合运用
  18. 天问: 世界到底由什么组成?
  19. 计算机ms office 基础知识教程,计算机等级考试二级MS-Office基础知识教程.doc
  20. Excel表格中行列互换的方法?

热门文章

  1. matlab关系矩阵布尔运算,[SketchUp]:布尔运算的运用,涨知识了
  2. 【二维码】艺术二维码生成
  3. 【Oracle11g官方文档阅读】DBA Essentials-上篇
  4. SDK “iphoneos“ cannot be located
  5. 集运系统,集运下单系统,国际物流集运系统,转运系统源码 集运系统源码
  6. e.Row.RowType == DataControlRowType.DataRow诠释(实例解释)转自孤舟济海,云卷云舒
  7. svg实现圆环倒计时动画效果
  8. 修改ua html5,html5中bootstrap表单样式文件html,兼容多种UA终端
  9. CGCS2000国家大地坐标系参数
  10. [data engineering] (一)数据工程师的工作内容以及需要的软硬实力