作者:Andy Wilkinson
翻译:书山苦木
1.1.2.RELEASE (原地址)
Copyright © 2014
本文档的副本可以供自己使用和分发给别人,只要你不收取任何费用的副本和进一步提供,每个副本包含版权声明,是否分布在打印或电子
Part I. Spring IO 平台文档
本节提供了Spring IO平台参考文档的简要概述
1. 关于文档
Spring IO平台参考文档可用于html pdf epub
最新的文档在 http://docs.spring.io/platform/docs/current/reference.
本文档的副本可以供自己使用和分发给别人,只要你不收取任何费用的副本和进一步提供,每个副本包含版权声明,是否分布在打印或电子。
2. 获得帮助
如果你对Spring IO平台有任何困难,可以从这里获得帮助:
+ 学习Spring 基础—— Spring IO平台汇集了很多Spring项目,spring.io网站有大量的参考文档。如果你刚开始接触,可以先看看指南。
+ 报告Spring IO平台bug : https://github.com/spring-io/platform/issues.
Spring IO平台是完全开源的,包含这个文档。如果你找到什么问题,或者希望他变得更好,请参与进来。
Part II. 入门指南
本节提供了所有你需要知道Spring的入门指南。
3. 介绍Spring IO平台
Spring IO平台结合了Spring的核心api结合成一个整体现代应用程序的平台。它规定了很多Spirng组件以及依赖的版本,使得非常容易的协同工作。
4. 使用Spring IO平台
Spring IO平台主要是为了使用依赖关系管理系统。可以使用Maven或者Gradle。
4.1 Maven搭建Spring IO平台
平台使用Maven的依赖关系管理提供支持依赖版本应用程序的构建。使用这种依赖关系管理可以将平台的pom导入应用程序的pom:
<?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>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.spring.platform</groupId>
<artifactId>platform-bom</artifactId>
<version>1.1.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
…
</project>
另外一种方式,不是import方式导入平台的pom,你可能更愿意使用它作为pom的parent:
<?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>
<parent>
<groupId>io.spring.platform</groupId>
<artifactId>platform-bom</artifactId>
<version>1.1.2.RELEASE</version>
<relativePath/>
</parent>
…
</project>
采用这种方式,除了导入pom提供依赖关系管理,您的应用程序还将需要增加Spring Boot的Maven插件。利用这个默认配置,你需要在<plugins>
部分添加到pom:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
如果你希望同时使用平台和Spring Boot,没有使用平台的pom作为parent,你可以手动进行配置。可以参考Spring Boot的文档
无论哪一种方式,都没有依赖关系添加到你的应用。然而,当你声明一个依赖的平台的一部分,你将可以省略版本号。例如:
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
</dependencies>
如果要了解更多的细节,包括在什么平台和所提供的版本,请点击。
4.2 Gradle搭建Spring IO平台
使用Gradle构建Spirng IO平台,你可以使用于Maven相似的方式Gradle依赖管理插件。插件的使用是必要的,因为它不提供一个内置相当于Maven的依赖管理支持。
使用这个插件,您配置您的构建应用插件,然后在依赖管理配置您导入平台的bom:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'io.spring.gradle:dependency-management-plugin:0.4.1.RELEASE'
}
}
apply plugin: 'io.spring.dependency-management'
repositories {
mavenCentral()
}
dependencyManagement {
imports {
mavenBom 'io.spring.platform:platform-bom:1.1.2.RELEASE'
}
}
有了这个配置然后您可以声明平台的依赖,不需要指定版本。
dependencies {
compile 'org.springframework:spring-core'
}
如果要了解更多的细节,包括在什么平台和所提供的版本,请点击
Part III. 更新
本节提供了所有你需要知道的这个版本Spring IO平台的更新
5 不推荐使用
一些平台的组件已经被弃用的,在将来的版本将被删除。新的应用程序不应该使用废弃的组件,以确保顺利迁移路径未来版本的平台,现有的应用程序应该被更新。
5.1 platform-versions 组件
Spring IO 平台 1.1 版本,platform-versions
属性不推荐使用。Maven用户不受到这个更新的影响。如果使用的是Gradle,你应该使用platform-bom
替代:
dependencies {
versionManagement 'io.spring.platform:platform-bom:1.1.2.RELEASE@properties'
}
5.2 Codahale metrics
Spring IO 平台 1.1 版本,4个Codahale metrics的依赖管理不推荐使用。它们是:
com.codahale.metrics:metrics-core
com.codahale.metrics:metrics-ganglia
com.codahale.metrics:metrics-graphite
com.codahale.metrics:metrics-servlets
推荐使用:
io.dropwizard.metrics:metrics-core
io.dropwizard.metrics:metrics-ganglia
io.dropwizard.metrics:metrics-graphite
io.dropwizard.metrics:metrics-servlets
5.3 net.java.dev.rome:rome
Spring IO 平台 1.1 版本, 不推荐使用net.java.dev.rome:rome
,推荐使用com.rometools:rome
。
5.4 net.java.dev.rome:rome-fetcher
Spring IO 平台 1.1 版本, 不推荐使用net.java.dev.rome:rome-fetcher
, 推荐使用com.rometools:rome-fetcher
。
5.5 net.sf.ehcache:ehcache-core
Spring IO 平台 1.1 版本,不推荐使用net.sf.ehcache:ehcache-core
,推荐使用net.sf.ehcache:ehcache
。
5.6 org.apache.cassandra:cassandra-all
Spring IO 平台 1.1 版本,废弃org.apache.cassandra:cassandra-all
。
5.7 org.apache.tomcat:tomcat7-websocket
Spring IO 平台 1.1 版本,不推荐使用org.apache.tomcat:tomcat7-websocket
。 Spring IO 平台 2.0 版本将使用Tomcat 8 org.apache.tomcat:tomcat-websocket
来替代。
5.8 org.glassfish.tyrus:tyrus-websocket-core
Spring IO 平台 1.1 版本升级 Tyrus 到 1.3.5 (从1.2.1) tyrus-websocket-core
已经不存在了. org.glassfish.tyrus:tyrus-websocket-core
在1.2.1不推荐使用了, 应该更新到1.3.5来替代.
5.9 org.hibernate.javax.persistence:hibernate-jpa-2.0-api
Spring IO 平台 1.1 版本, 不推荐使用 org.hibernate.javax.persistence:hibernate-jpa-2.0-api
,推荐使用org.eclipse.persistence:javax.persistence
。
5.10 org.neo4j:neo4j-graph-collections
Spring IO 平台 1.1 版本, 不推荐使用org.neo4j:neo4j-graph-collections
。
Part IV. 发布周期
本节描述平台的发布周期。
6. 综述
一个新的维护版本发生大约每6到8周。但是,有的时候新版本发生比这更快;例如,解决安全漏洞。这将减少发布时间。
除了上面描述的一般维护周期,平台的维护发行版通常会引发的Spring Boot的发行版。此外,一个新的维护版本的Spring框架往往会触发一个Spring Boot的发行版
平台的一个关键目标是为用户提供一个稳定的版本,保持向后兼容性,同时尽可能的。单Spring Framework or Spring Boot有bug的时候,会使使平台跳过一个版本,等待发布,解决问题。
Part V. 附件
附件A. 依赖的版本
下表提供Spring IO Platform所有组件的版本细节,当你声明一个依赖没有使用版本的时候,表中列出的版本将被使用。
Group | Artifact | Version |
---|---|---|
antlr | antlr | 2.7.7 |
aopalliance | aopalliance | 1.0 |
bsf | bsf | 2.4.0 |
ch.qos.logback | logback-classic | 1.1.3 |
com.atomikos | transactions-jdbc | 3.9.3 |
com.atomikos | transactions-jms | 3.9.3 |
com.atomikos | transactions-jta | 3.9.3 |
com.beust | jcommander | 1.35 |
com.caucho | hessian | 4.0.38 |
com.codahale.metrics | metrics-core | 3.0.2 |
com.codahale.metrics | metrics-ganglia | 3.0.2 |
com.codahale.metrics | metrics-graphite | 3.0.2 |
com.codahale.metrics | metrics-servlets | 3.0.2 |
com.couchbase.client | couchbase-client | 1.4.8 |
com.datastax.cassandra | cassandra-driver-dse | 2.0.9.2 |
com.esotericsoftware.kryo | kryo | 2.22 |
com.fasterxml.jackson.core | jackson-annotations | 2.4.5 |
com.fasterxml.jackson.core | jackson-core | 2.4.5 |
com.fasterxml.jackson.core | jackson-databind | 2.4.5 |
com.fasterxml.jackson.dataformat | jackson-dataformat-xml | 2.4.5 |
com.fasterxml.jackson.dataformat | jackson-dataformat-yaml | 2.4.5 |
com.fasterxml.jackson.datatype | jackson-datatype-hibernate4 | 2.4.5 |
com.fasterxml.jackson.datatype | jackson-datatype-jdk8 | 2.4.5 |
com.fasterxml.jackson.datatype | jackson-datatype-joda | 2.4.5 |
com.fasterxml.jackson.datatype | jackson-datatype-jsr310 | 2.4.5 |
com.gemstone.gemfire | gemfire | 7.0.2 |
com.github.fge | json-patch | 1.7 |
com.github.mxab.thymeleaf.extras | thymeleaf-extras-data-attribute | 1.3 |
com.github.spullara.redis | client | 0.7 |
com.goldmansachs | gs-collections | 5.1.0 |
com.google.code.findbugs | jsr305 | 2.0.3 |
com.google.code.gson | gson | 2.3.1 |
com.google.code.typica | typica | 1.3 |
com.google.guava | guava | 17.0 |
com.google.inject | guice | 3.0 |
com.google.protobuf | protobuf-java | 2.5.0 |
com.googlecode.json-simple | json-simple | 1.1.1 |
com.googlecode.protobuf-java-format | protobuf-java-format | 1.2 |
com.h2database | h2 | 1.4.185 |
com.ibm.jbatch | com.ibm.jbatch-tck-spi | 1.0 |
com.ibm.websphere | uow | 6.0.2.17 |
com.jamonapi | jamon | 2.4 |
com.jayway.jsonpath | json-path | 0.9.1 |
com.jcraft | jsch | 0.1.52 |
com.lambdaworks | lettuce | 2.3.3 |
com.lmax | disruptor | 3.2.1 |
com.lowagie | itext | 2.1.7 |
com.mchange | c3p0 | 0.9.5 |
com.mysema.querydsl | querydsl-apt | 3.4.3 |
com.mysema.querydsl | querydsl-core | 3.4.3 |
com.mysema.querydsl | querydsl-jpa | 3.4.3 |
com.mysema.querydsl | querydsl-lucene3 | 3.4.3 |
com.mysema.querydsl | querydsl-mongodb | 3.4.3 |
com.rabbitmq | amqp-client | 3.4.4 |
com.rometools | rome | 1.5.0 |
com.rometools | rome-fetcher | 1.5.0 |
com.samskivert | jmustache | 1.10 |
com.splunk | splunk | 1.3.0 |
com.sun.facelets | jsf-facelets | 1.1.14 |
com.sun.faces | jsf-api | 2.2.10 |
com.sun.faces | jsf-impl | 2.2.10 |
com.sun.mail | imap | 1.5.2 |
com.sun.mail | javax.mail | 1.5.2 |
com.sun.xml.messaging.saaj | saaj-impl | 1.3.25 |
com.sun.xml.wss | xws-security | 3.0 |
com.thoughtworks.qdox | qdox | 1.12.1 |
com.thoughtworks.xstream | xstream | 1.4.8 |
com.zaxxer | HikariCP | 2.2.5 |
com.zaxxer | HikariCP-java6 | 2.2.5 |
commons-beanutils | commons-beanutils | 1.9.2 |
commons-beanutils | commons-beanutils-core | 1.8.3 |
commons-cli | commons-cli | 1.2 |
commons-codec | commons-codec | 1.10 |
commons-collections | commons-collections | 3.2.1 |
commons-configuration | commons-configuration | 1.6 |
commons-dbcp | commons-dbcp | 1.4 |
commons-digester | commons-digester | 2.1 |
commons-fileupload | commons-fileupload | 1.3.1 |
commons-httpclient | commons-httpclient | 3.1 |
commons-io | commons-io | 2.4 |
commons-lang | commons-lang | 2.6 |
commons-logging | commons-logging | 1.2 |
commons-net | commons-net | 3.3 |
commons-pool | commons-pool | 1.6 |
dom4j | dom4j | 1.6.1 |
… | … | … |
ps:依赖的包太多了,请参考官方文档
ps : 很久都没有翻译了,很多词都是看英文的,转换为中文不通顺呀!