0%

语言支持

Kotlin

Kotlin是一种静态类型语言,它以 JVM(和其他平台)为目标,允许编写简洁优雅的 code,同时提供非常好的互通性与用 Java 编写的现有 libraries。

Spring Framework 为 Kotlin 提供 first-class 支持,让开发人员可以编写 Kotlin applications,就好像 Spring Framework 是本机 Kotlin framework 一样。

了解 Spring 和 Kotlin 的最简单方法是遵循这个全面的教程。如果您需要支持,请随意加入Kotlin Slack的#spring channel 或在堆栈溢出上使用springkotlin作为标记提问。

阅读全文 »

集成

远程和Web服务

Spring features integration classes 用于远程支持各种技术。远程支持简化了 remote-enabled 服务的开发,由您的常规(Spring)POJO 实现。目前,Spring 支持以下远程技术:

  • 远程方法调用(RMI):通过使用RmiProxyFactoryBeanRmiServiceExporter,Spring 支持传统的 RMI(带有java.rmi.Remote接口和java.rmi.RemoteException)和通过 RMI 调用程序(带有任何 Java 接口)的透明远程处理。
  • Spring 的 HTTP 调用程序:Spring 提供了一种特殊的远程处理策略,允许通过 HTTP 进行 Java 序列化,支持任何 Java 接口(如 RMI 调用程序所做的那样)。相应的支持 classes 是HttpInvokerProxyFactoryBeanHttpInvokerServiceExporter
  • Hessian:通过使用 Spring 的HessianProxyFactoryBeanHessianServiceExporter,您可以通过 Caucho 提供的轻量级二进制 HTTP-based 协议透明地公开您的服务。
  • JAX-WS:Spring 通过 JAX-WS(JAX-RPC 的后继,如 Java EE 5 和 Java 6 中引入)为 web services 提供远程支持。
  • JMS:通过JmsInvokerServiceExporterJmsInvokerProxyFactoryBean classes 支持使用 JMS 作为底层协议进行远程处理。
  • AMQP:Spring AMQP 项目支持使用 AMQP 作为基础协议进行远程处理。
阅读全文 »

Web on Reactive Stack

这一部分文档介绍了对构建在响应流API上的可在非阻塞服务器(如Netty、Undertow和Servlet 3.1+容器)上运行的反应堆栈web应用程序的支持。个别章节涵盖了Spring WebFlux框架、响应式web客户端、对测试的支持以及响应式库。有关Servlet堆栈web应用程序,请参阅Servlet堆栈上的web

SpringWebFlux

Spring框架中包含的原始web框架Spring web MVC是专门为Servlet API和Servlet容器构建的。随后在5.0版本中添加了响应堆栈web框架Spring WebFlux。它是完全无阻塞的,支持响应流回压,并在Netty、Undertow和Servlet 3.1+容器上运行。

这两个web框架反映了它们的源模块的名称(Spring-webmvcSpring-webflux),并在Spring框架中共存。每个模块都是可选的。应用程序可以使用其中一个或另一个模块,或者在某些情况下同时使用这两个模块——例如,Spring MVC控制器和响应式WebClient。

阅读全文 »

Servlet Stack 上的 Web

SpringWebMVC

Spring Web MVC 是在 Servlet API 上构建的原始 web framework,并且从一开始就包含在 Spring Framework 中。形式 name,“ Spring Web MVC”来自其源模块(spring-webmvc)的 name,但它通常被称为“Spring MVC”。

Parallel 到 Spring Web MVC,Spring Framework 5.0 引入了一个 reactive-stack web framework,其 name,“ Spring WebFlux”也是基于它的源模块(spring-webflux)。本节介绍 Spring Web MVC。 下一节涵盖 Spring WebFlux。

有关基线信息以及与 Servlet 容器和 Java EE version 范围的兼容性,请参阅 Spring Framework 维基

阅读全文 »

数据访问

事务管理

对于事务的全面支持是使用 Spring Framework 的最主要原因之一。Spring Framework 为事务管理提供了统一的抽象,这带来了如下好处:

  • 跨越不同 transaction API 的一致编程模型,例如 Java Transaction API(JTA),JDBC,Hibernate 和 Java Persistence API(JPA)。
  • 声明式事务管理的支持。
  • 一种相比于复杂事务API(例如JTA)要更简单的编程式事务管理。
  • 与 Spring 的数据访问抽象的完美整合。

以下部分描述了 Spring Framework 的事务特性和术语:

(该章还包括对最佳实践的讨论,application server integration常见问题的解决方案 .)

阅读全文 »

Spring Framework 概述

“Spring”的含义

术语“Spring”在不同的环境中意味着不同的东西。它可用于引用 Spring Framework 项目本身,这是它开始的地方。随着时间推移,其他 Spring 项目已经构建在 Spring Framework 之上。大多数情况下,当人们说“Spring”时,他们指的是整个项目系列。这个参考文档侧重于基础:Spring Framework 本身。

Spring Framework 分离成多个模块。 Applications 可以选择他们所需要的模块。容器的核心模块包括 配置模型和依赖注入机制。除此之外,Spring Framework 为不同的应用程序架构提供了基础支持,包括消息传递,事务数据和持久性以及 web。它还包括 Servlet-based Spring MVC web framework,以及 Spring WebFlux reactive web framework。

关于模块的说明:Spring 的 framework jars 允许部署到 JDK 9 的模块路径(“Jigsaw”)。为了在 Jigsaw-enabled applications 中使用,Spring Framework 5 jars 带有“Automatic-Module-Name”清单条目,它们定义了独立于 jar artifact 名称的稳定 language-level 模块名称(“spring.core”,“spring.context”等)(jars 遵循相同的命名规则“ - “而不是”.“,例如 ”spring-core“和”spring-context“)。当然,Spring 的 framework jars 在 JDK 8 和 9 上都能正常工作。

阅读全文 »

核心技术

Version 5.2.8.RELEASE

参考文档的这一部分涵盖了对Spring框架绝对不可或缺的所有技术。

其中最重要的是Spring框架的控制反转(IoC)容器。在全面介绍了Spring框架的IoC容器之后,紧接着是对Spring的面向方面编程(AOP)技术的全面介绍。Spring框架有自己的AOP框架,它在概念上很容易理解,并且成功地解决了Java企业编程中80%的AOP需求的最佳点。

还介绍了Spring与AspectJ的集成(就特性而言,这是目前最丰富的,也是Java企业领域中最成熟的AOP实现)。

阅读全文 »