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
Spring 和 JAVA 的牵绊相关推荐
- com/opensymphony/xwork2/spring/SpringObjectFactory.java:220:-1问题出现的原因及解决办法
转自:https://blog.csdn.net/shinchan_/article/details/37818927 com/opensymphony/xwork2/spring/SpringObj ...
- 解决Spring的java项目打包后执行出现“无法读取方案文档...“、“原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是...”问题
解决Spring的java项目打包后执行出现"无法读取方案文档..."."原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是..."问题 ...
- 最近在研究Spring Data JPA,大家都来说说感受~~ - Spring,JPA - Java - ITeye论坛
最近在研究Spring Data JPA,大家都来说说感受~~ - Spring,JPA - Java - ITeye论坛 最近在研究Spring Data JPA,大家都来说说感受~~ - Spri ...
- Spring的Java配置方式
Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1 @Configuration 和 @Bean Spring的Java配置方式是通过 @Configuration ...
- SpringBoot_02 Spring的Java配置方式
1. Spring的Java配置方式 Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1.1. @Configuration 和 @Bean Spring的Java配置方 ...
- 常用注解[spring 的 java 配置] ||springboot 热部署
常用注解[spring 的 java 配置] 回顾学过的 spring 的注解 @Controller @RestController @Service @Repository @Component ...
- spring cloud java b2b2c o2o分布式 微服务电子商务平台
大型企业分布式互联网电子商务平台,推出PC+微信+APP+云服务的云商平台系统,其中包括B2B.B2C.C2C.O2O.新零售.直播电商等子平台. 需要JAVA Spring Cloud大型企业分布式 ...
- Spring Security Java Config Preview--官方
原文地址:[1]https://spring.io/blog/2013/07/02/spring-security-java-config-preview-introduction/ [2]https ...
- spring异常 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderServlet
spring异常 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderServlet 情况1: ...
最新文章
- WIN7、XP局域网共享问题和重置IP协议
- Windows启动过程
- Java开发代码规范之编程规约---命名风格
- C#开发微信公众平台-就这么简单(附Demo)(转)
- An HTML5 presentation builder — Read more
- python 字符串函数总结
- python 中locals() 和 globals()的区别
- [Java] 蓝桥杯ADV-188 算法提高 排列数
- windows进程管理问题
- 量化感知训练_一文速览EMNLP 2020中的Transformer量化论文
- Ubuntu下添加打印机---之寻找设备lpinfo
- 最近好颓废啊,改过自新就从收拾自己的东西开始吧
- 小米路由器r3gv2/r4a Lean的OpenWrt固件
- 大数运算python编程实现
- 第十二章:如何制定里程碑
- 完美mix-in(混入)模式———js对象想怎么玩就怎么玩
- lingo入门教程之二 --- 集合运用
- 天问: 世界到底由什么组成?
- 计算机ms office 基础知识教程,计算机等级考试二级MS-Office基础知识教程.doc
- Excel表格中行列互换的方法?
热门文章
- matlab关系矩阵布尔运算,[SketchUp]:布尔运算的运用,涨知识了
- 【二维码】艺术二维码生成
- 【Oracle11g官方文档阅读】DBA Essentials-上篇
- SDK “iphoneos“ cannot be located
- 集运系统,集运下单系统,国际物流集运系统,转运系统源码 集运系统源码
- e.Row.RowType == DataControlRowType.DataRow诠释(实例解释)转自孤舟济海,云卷云舒
- svg实现圆环倒计时动画效果
- 修改ua html5,html5中bootstrap表单样式文件html,兼容多种UA终端
- CGCS2000国家大地坐标系参数
- [data engineering] (一)数据工程师的工作内容以及需要的软硬实力