JDK 核心 API
Spring 对 Java 版本依赖支持
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 |
