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