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 物料清单 (BOM) 依赖项对 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 社区中所有即将举行的活动。

查看全部