JDK 核心 API

image.png

Spring 对 Java 版本依赖支持

image.png

Spring 对 Java 版本特性使用

Java 5 语法特性

语法特性 Spring 支持版本 代表实现 实现对应用途
注解(Annotation) 1.2+ @Transaction 事务控制
枚举(Enumeration) 1.2+ Propagation 事务传播行为
for-each 语法 3.0+ AbstractApplicationContext
自动装箱拆箱 3.0+
泛型(Generic) 3.0+ APplicationListener

Java 6 语法特性

语法特性 Spring 支持版本 代表实现 实现对应用途
接口 @Override 4.0+

Java 7 语法特性

语法特性 Spring 支持版本 代表实现 实现对应用途
Diamond 语法 5.0+ DefaultListableBeanFactory
try…with… resources 语法 5.0+ ResourceBundleMessageSource 国际化

Java 8 语法特性

语法特性 Spring 支持版本 代表实现 实现对应用途
Lambda 语法 5.0+ ProtertyEditorRegistrySupport

Spring 对 JDK API 实践

< Java 5 API

API 类型 Spring 支持版本 代表实现 实现对应用途
反射 1.0+ MethodMatcher AOP
Java Beans 1.0+ CachedIntrospectionResults
动态代理 1.0+ JdkDynamicAopProxy
XML 处理(DOM、SAX……) 1.0+ XmlBeanDefinitionReader 将 XML 里的配置读取为 BeanDefinition
Java 管理扩展(JMX) 1.2+ `[@ManagedResource ](/ManagedResource )<br />
<br />@Transaction
将 bean 标记为 JMX 的 bean
事务相关
Instrumentation 2.0+ InstrumentationSavingAgent 将 Instrumentation 存储到本地,用来进行字节码重写
并发框架(J.U.C) 3.0+ ThreadPoolTaskScheduler 关于线程池的简单封装
格式化(Formatter) 3.0+ DateFormatter 时间格式化,类似 JDK 中的 SimpleDateFOrmatter

Java 6 API

API 类型 Spring 支持版本 代表实现 实现对应用途
JDBC 4.0(JSR 221) 1.0+ JdbcTemplate
Common Annotations(JSR 250) 2.5+ CommonAnnotationBeanPOstProcessor
JAXB 2.0「Java API for XML Binding」(JSR 222) 3.0+ Jaxb2Marshaller
Scripting in JVM(JSR 223) 4.2+ StandardScriptFactory
可拔插注解处理 API(JSR 269) 5.0+ @Indexed 编译时将 API 建立索引。比如 @ComponentScan
@ComponentScan
会指定 basePackages,如果指定过多,则索引时间变长,使用参考:SpringFramework5.0 @Indexed注解 简单解析
Java Compiler API(JSR 199) 5.0+ TestCompiler(单元测试) APT(Annotation Processing Tool,注解处理器)在编译时使用

可以在运行时单独建立一个编译器,达到测试效果 |

Java 7 API

API 类型 Spring 支持版本 代表实现 实现对应用途
Fork/Join 框架(JSR 166) 3.1+ ForkJoinPoolFactoryBean 生成 Fork/Join 的 Pool
NIO 2(JSR 203) 4.0+ PathResource

Java 8 API

类型 Spring 支持版本 代表实现 实现对应用途
Date and Time API(JSR 310) 4.0+ DateTimeContext
可重复 Annotations(JSR 337) 4.0+ @PropertySource
Stream API(JSR 335) 4.2+ StreamConver 转为 Stream
CompletableFuture(J.U.C) 4.2+ CompletableToListenableFutureAdapter

Spring 对 Jave EE API 整合

Java EE Web 技术

JSR 规范 Spring 支持版本 代表实现 实现对应用途
Servlet + JSP(JSR 035) 1.0+ DispatcherServlet
JSTL(JSR 052) 1.0+ JstlView
JavaServer Faces(JSR 127) 1.1+ FacesContextUtils Web 渲染技术
Portlet(JSR 168) 2.0-4.2 DispatcherPortlet
SOAP「Simple Object Access Protocol」(JSR 067) 2.5+ SoapFaultException
WebServices(JSR 109) 2.5+ CommonAnnotationBeanPostProcessor
WebSocker(JSR 356) 4.0+ WebSocketHandler

Java EE 数据存储

JSR 规范 Spring 支持版本 代表实现 实现对应用途
JDO「Java Data Object」(JSR 12) 1.0-4.2 JdoTemplate
JTA「Java Transaction API」(JSR 907) 1.0+ JtaTranscationManager 事务 API
JPA(EJB 3.0 JSR 220 成员) 2.0+ JpaTransactionManager
Java Caching API(JSR 107) 3.2+ JCacheCache NoSQL

Java EE Bean 技术

JSR 规范 Spring 支持版本 代表实现 实现对应用途
JMS(JSR 914) 1.1+ JmsTemplate
EJB 2.0(JSR 19) 1.0+ AbstractStatefulSessionBean
Dependence Injection for Java(JSR 330) 2.5+ AutowireAnnotationBeanPostProcessor
Bean Validation(JSR 303) 3.0+ LocalValidatorFactoryBean