Spring 和 JAVA 的牵绊

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
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享