Введение в Spring IO Platform

Мы рады сообщить о выходе Spring IO 1.0!

Spring IO является в первую очередь описанием того, что многие пользователи уже знают как единственную, согласованную и унифицированную платформу вокруг Spring.

Большие вещи приходят в маленькие(Java) пакеты

Платформа Spring IO включает Foundation Layer модули и Execution Layer целевых сред выполнения(DSR’ы). Foundation Layer состоит из основных Spring модулей и соответствующих сторонних зависимостей, которые были подобраны для обеспечения внимания на разработке. DSR’ы, представленные Spring IO Execution Layer, значительно упрощают создание близких к реальным задач на основе JVM. Первый релиз Spring IO включает два DSR: Spring Boot и Grails. Spring XD будет добавлен в течении 2014 года.

Spring поддерживает многие задачи приложений. Хотите получать данные из хранилища? Большое или специфичное хранилище? Создать решения для пакетной обработки данных? Интегрировать разнородные системы и данные? Работать с AMPQ? Использовать язык программирования Groovy для быстрой сборки web-приложения с Grails? Соединиться через защищенный OAuth протокол с REST-сервисами, такими как Twitter, Facebook или любым других защищенным по OAuth протоколу? Защитить приложение? Создать web-приложение с REST, websockets и др.?(С использованием HATEOAS?) Подключиться к инфраструктуре сервисов в вашей любимой PaaS платформе(например, Cloud Foundry)? Нужно управлять быстро, параллельно отправляя сообщения и обрабатывая события? Создавать публичные SOAP web-сервисы? Необходимо что-то ещё? Скорее всего, это решение вам подходит и вы знаете, где его искать!

С Spring Boot будет легко подключить эти модули(и многие другие!) вместе, как того требует ваше решение. Spring Boot является отличным способом для первоначальной и упрощенной непрерывной разработки.

Платформа в BOM

Платформа Spring IO также предоставляет актуальные согласованные API через Maven Bill-of-Materials зависимость. Сейчас легко рассуждать о применении версий зависимостей вместе в разрезе всего проекта. Если вы хотите получить самую последнюю и самую лучшую ревизию API, просто обновите вашу Spring IO зависимость. Spring IO, как платформа, также поддерживает популярные в работе ревизии сторонних инструментов(таких как Hibernate).

В конечном счете, Spring IO является просто набором библиотек в CLASSPATH вашего приложения. Вы можете выбрать для работы конкретные версии зависимостей с использованием объекта <dependencyManagement/> вашего инструмента сборки. Управление зависимостями является удобством, но не требованием.

Spring IO проверена на работу в JDK 1.7 и 1.8, хотя некоторые проекты под Spring IO будут также работать и с более старшими версиями JDK. Требуется только Java SE, поддерживается Groovy, Grails и некоторые Java EE. Как платформа, может быть развернуто на встроенных системах, классических серверах приложений и PaaS-окружениях.

Лучше меньше, да лучше

Здесь пример, как можно использовать Spring IO. Это простой Spring Boot REST-сервис, который, когда запущен, отвечает на HTTP запросы в форме http://127.0.0.1:8080/hello/SpringIO.

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>

<!-- поддержка нашей зависимости Spring Boot's. Без версии. -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

<!-- Транзитивно вносим в 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.

comments powered by Disqus