Spring IO 平台简介

工程技术 | Josh Long | 2014年6月26日 | ...

我们很高兴宣布Spring IO 1.0 发布!

Spring IO 首先是一个逻辑描述,它描述了许多用户已经知道并使用的,围绕 Spring 为中心的一个单一的、有凝聚力的、协调的平台。

小 (Java) 包里有大乾坤

Spring IO 平台包括基础层模块和执行层特定于领域的运行时(DSR)。 基础层代表了核心 Spring 模块和相关的第三方依赖,这些依赖已经过协调以确保流畅的开发体验。 Spring IO 执行层提供的 DSR 极大地简化了构建可用于生产的、基于 JVM 的工作负载。 Spring IO 的第一个版本包括两个 DSR:Spring Boot 和 Grails。 Spring XD 将在 2014 年晚些时候添加到 Spring IO 平台。

Spring 支持许多应用程序工作负载。想要连接到数据存储吗? 一个大型专门的数据存储? 构建一个批处理解决方案集成不同的系统和数据? 使用 AMQP 吗? 使用 Groovy 编程 语言 使用 Grails 快速构建 Web 应用程序? 连接到像 TwitterFacebook 或 实际上 任何 OAuth 安全服务的 OAuth 安全 REST 服务保护应用程序的安全? 构建一个 具有 REST、websockets 等功能的 Web 应用程序? (使用 HATEOAS?) 连接到您喜欢的 平台即服务 (例如 Cloud Foundry) 上的基础架构服务? 需要 管理快速的、响应式的、并发的、消息和事件分发? 公开 基于 SOAP 的 Web 服务? 我需要继续说下去吗? 如果您知道在哪里查找,很可能有一个适合您的解决方案

使用 Spring Boot,可以很容易地将这些模块(以及更多的模块!)整合到由约定驱动的解决方案中。 Spring Boot 是引导和简化持续应用开发的好方法。

BOM 中的平台

Spring IO 平台也是通过 Maven Bill-of-Materials 依赖项对 API 进行实际协调。 现在很容易推断出整个产品组合中哪些版本的哪些依赖项可以一起工作。 如果您想要获得 API 的最新版本,只需更新您的 Spring IO 依赖项。 Spring IO 作为一个平台,还指定了已知可以工作的流行第三方库(如 Hibernate)的修订版本。

Spring IO 最终只是应用程序 CLASSPATH 上的库。 您可以选择使用构建工具的 <dependencyManagement/> 工具来使用特定版本的依赖项。 版本管理最终只是一个建议和方便,而不是一个要求

Spring IO 经过认证可以在 Java 1.7 和 1.8 上工作,尽管 Spring IO 下的特定项目通常也可以在更旧的 JDK 上工作。 它只需要 Java SE 并支持 Groovy、Grails 和一些 Java EE。 作为一个平台,它可以部署在嵌入式运行时、经典应用服务器部署和 PaaS 环境中。

少即是多

这是一个您可能如何使用 Spring IO 的示例。 这是一个简单的 Spring Boot REST 端点,在运行时,响应 http://127.0.0.1:8080/hello/SpringIO 形式的 HTTP 请求。

hi/pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    
    <groupId>com.example</groupId>
    <artifactId>your-application</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    
    <!-- our one dependency on Spring Boot's web support. No version. -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <!-- Transitively bring in the Spring IO Platform Bill-of-Materials `pom.xml` -->    
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>io.spring.platform</groupId>
                <artifactId>platform-bom</artifactId>
                <version>1.0.0.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>

hi/src/main/java/io/Application.java


package io;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@Configuration
@EnableAutoConfiguration
@RestController
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @RequestMapping("/hello/{name}")
    String hi(@PathVariable String name) {
        return "Hello, " + name + "!";
    }
}

详尽的 Spring IO 文档 中还有更多内容可以阅读和讨论。 它包括更多的示例并涵盖 Gradle。

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,以加速您的进步。

了解更多

获得支持

Tanzu Spring 在一个简单的订阅中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举行的活动

查看 Spring 社区中所有即将举行的活动。

查看全部