Spring Cloud Brixton.RC1 现已可用

工程 | Spencer Gibb | 2016 年 3 月 24 日 | ...

我代表团队高兴地宣布,Spring Cloud Brixton Release Train 的第一个候选版本现已发布。此里程碑版本今日可用,可在我们的 Spring 里程碑仓库中找到。

亮点

Brixton Release Train 的部分亮点包括

  • 支持 Spring Boot 1.3.x 和 Spring 4.2.x
  • 通过 Spring Cloud Cluster 实现集群领导选举和锁
  • 通过 Spring Cloud Consul 支持 Hashicorp Consul 进行服务注册/发现和配置
  • 通过 Spring Cloud Zookeeper 支持 Apache Zookeeper 进行服务注册/发现、配置,并在 Spring Cloud Cluster 中进行领导选举
  • 通过 Spring Cloud Sleuth 抽象实现分布式追踪,提供两种开箱即用的实现:一种支持日志记录(非常适合 Logstash 和 Loggregator 等日志收集器和多路复用器),另一种支持 Twitter 的 Zipkin
  • Netflix Atlas 遥测系统以及下一代 Spectator 指标库

STS 中的 Spring Boot Dashboard - 第 4 部分:使用 Cloud Foundry 清单文件

工程 | Martin Lippert | 2016 年 3 月 22 日 | ...

欢迎回到 Spring 社区,

Spring Tool Suite 的最新版本 3.7.3 引入了许多围绕 Spring Boot Dashboard 的新特性。因此,我们将继续去年开始的系列博客文章,向您介绍在 IDE 中使用基于 Spring Boot 的微服务项目的新方式(您可以在底部找到之前部分的链接)。

Cloud Foundry 清单文件

在本系列新的一篇文章中,我们将仔细研究 Cloud Foundry 清单文件。它们是 Cloud Foundry 的一个概念,用作在 Cloud Foundry 上定义应用程序配置的快捷方式。在执行“cf push”时,您无需将每个参数和配置都传递给命令行,而是可以将所有配置数据放入 YAML 文件中,然后将其传递给 push 命令。有关 Cloud Foundry 清单文件的更多详细信息可以在此处找到。

Spring Boot Dashboard 的早期版本已经使用清单文件将应用程序部署到 CF,前提是项目中存在名为“manifest.yml”的文件。这是为了您的方便而“在幕后”完成的。这很好也很实用。但这种支持的“隐藏性”也造成了一些困惑。

部署应用程序时选择清单文件

新版本的 Spring Boot Dashboard 支持 Cloud Foundry 清单文件作为一等公民。这在您第一次从 Boot Dashboard 中部署应用程序到 Cloud Foundry 目标时开始显现。会弹出一个对话框,询问您应为此部署操作使用哪个清单文件。

此对话框允许您选择要用于部署应用程序的清单文件。这也允许您的项目中包含多个清单文件 - 例如用于 Cloud Foundry 上的不同空间或不同的部署环境。您还可以通过为每次部署操作选择不同的清单文件,将同一个应用程序多次部署到同一个 Cloud Foundry 目标。

对话框会显示所选清单文件的内容,以便您可以验证是否选择了正确的文件。如果清单文件内部有错误,您无需返回主 IDE 工作台,打开文件,编辑它,保存它,然后再返回部署操作。而是在对话框中直接编辑清单文件的内容。这使得向 Cloud Foundry 部署应用程序变得非常容易。

Boot Dashboard 会记住您的选择,如果您在 Cloud Foundry 上更新项目,它会再次使用相同的清单文件。这也意味着清单文件的更改将在下次应用程序重新部署到 Cloud Foundry 时被考虑(例如,在 Boot Dashboard 重启操作期间)。

当然,您可以改变主意并决定选择不同的清单文件。上下文菜单中的一个操作允许您打开相同的“选择清单文件”对话框并做出不同的选择。应用程序的下次重新部署将考虑这一更改。您还可以使用此对话框快速检查当前与项目关联的是哪个清单文件。

不使用清单文件进行部署

有时您还没有清单文件,或者不想使用现有的清单文件。在这种情况下,您可以在对话框中选择“手动模式”。

它会为一个临时清单文件打开一个编辑区域,并填充一些默认内容。您可以编辑此临时清单内容,添加属性或更改现有属性。这使您可以完全定义应用程序应如何部署到 Cloud Foundry。

此临时清单的内容不会存储在任何地方(我们可能会添加一个方便的选项,以快速将手动输入的清单内容保存到新文件中),并且 IDE 不会记住它以便您下次在 Cloud Foundry 上更新应用程序时使用。相反,更新应用程序时将保留并使用 Cloud Foundry 上的现有配置。

如果您以前使用过清单文件,然后决定切换到手动模式,情况也是如此。随后的应用程序更新将保持 Cloud Foundry 上的配置不变。

CF 上的配置更改

假设您使用了清单文件从 boot dashboard 中将您的应用程序部署到 Cloud Foundry。然后您进入 Web 控制台并向已部署的应用程序添加服务 - 或更改内存设置、扩展它,或对配置进行类似更改。如果您回到 boot dashboard,可能会更改应用程序的一些代码,然后在 Cloud Foundry 上重启(并因此更新)应用程序,boot dashboard 将再次使用清单文件 - 并丢弃您在 CF 上对配置所做的所有更改。为避免这种情况,当重新部署使用清单文件的应用程序时,boot dashboard 会检查 Cloud Foundry 上的配置更改。如果发现配置不匹配,它会打开一个差异和合并对话框 - 并显示详细的更改。

此功能可防止您意外覆盖配置更改。它是一个强大的对话框,允许您将 CF 上的配置更改合并到您的本地清单文件。您可以合并单个更改,也可以一次合并所有更改。这使得使用这些更改更新本地清单文件变得容易,并且您可以在将来更新应用程序时继续使用清单文件。

如果您不希望将 CF 上的这些配置更改反映到您的本地清单文件中,请选择“忘记清单”按钮,boot dashboard 将保持 Cloud Foundry 上的配置不变。它会将应用程序切换到“手动模式”部署。

同样,如果您想明确更改这些设置,请转到上下文菜单并选择“选择清单”操作。

编辑清单文件

虽然 Cloud Foundry 清单文件是为 Cloud Foundry 配置应用程序的一种简洁明了的方式,但编辑这些文件可能会很麻烦。幸运的是,新版本的 Spring Tool Suite 配备了专门用于 Cloud Foundry 清单文件的编辑器。

它为属性名称和选定的属性值提供了良好的内容辅助功能。

如果您将鼠标悬停在属性上,您将获得关于该属性的额外帮助以及如何及何时使用它的示例。

文件在输入时也会进行验证。协调错误会直接在编辑器中显示,就像在 Spring Boot 属性文件或编辑 Java 代码时一样。

好消息是:这种高级编辑支持在“选择清单文件”对话框中也可用(例如,在处理手动清单或更改所选清单文件内容时)

即将发布

本博客系列的下一部分将介绍对本地 Spring Boot 应用程序使用多个启动配置的新支持。敬请期待。

Spring Boot Dashboard 博客系列

如果您恰好在五月中旬到巴塞罗那(巴塞罗那总是好时节!),请不要错过参加 Spring I/O 大会的机会,我将在会上介绍 Spring 的最新和最棒的内容。此外,SpringOne Platform(八月初,拉斯维加斯)的注册最近已经开放,如果您想享受早鸟票价格,请尽快注册。

本周 Spring 资讯 - 2016 年 3 月 22 日

工程 | Josh Long | 2016 年 3 月 22 日 | ...

欢迎阅读新一期的《本周 Spring 资讯》!像往常一样,我们有很多内容要分享,所以让我们开始吧!本周我原计划在巴黎比利时。不幸的是,由于最近发生在布鲁塞尔机场和地铁的可怕、令人厌恶和懦弱的袭击,我不太确定是否会亲自前往比利时。然而,今晚的见面会演讲通过直播远程进行。请关注我的 Twitter 账号 - @starbuxman 获取更多信息。

话虽如此,有很多精彩的内容,让我们开始吧!

使用 Kotlin、Spring Boot 和 PostgreSQL 构建的地理空间信使

工程 | Sébastien Deleuze | 2016 年 3 月 20 日 | ...

继我的第一篇Kotlin 博客文章之后,今天我想介绍一下我为即将到来的Spring I/O 2016 大会演讲“使用 Kotlin 和 Spring Boot 开发地理空间 Web 服务”而开发的新 Spring Boot + Kotlin 应用程序。

处理原生数据库功能

此应用程序的目标之一是了解如何利用原生数据库功能,就像我们在 NoSQL 世界中所做的那样。在这里,我们想使用 PostgreSQL 的空间数据库扩展器 PostGIS 提供的地理空间支持。原生 JSON 支持也可能是一个很好的用例。

此地理空间信使示例应用程序可在 GitHub 上获取

本周 Spring 资讯 - 2016 年 3 月 15 日

工程 | Josh Long | 2016 年 3 月 15 日 | ...

欢迎阅读新一期的《本周 Spring 资讯》!自上次交谈以来,这是多么疯狂的一周!上周我周一到周五之间分别在旧金山、德国、苏格兰和罗马尼亚待了一天。这周能在(温暖的!)南加州的洛杉矶和圣地亚哥与客户交流并在几个见面会上发表演讲真是太好了!如果您在附近,希望您能参加在洛杉矶举行的 Cloud Native 见面会(今晚!)。

Spring for Apache Kafka 里程碑 1 可用

工程 | Gary Russell | 2016 年 3 月 14 日 | ...

我很高兴地宣布,spring-kafka (Spring for Apache Kafka) 的第一个里程碑版本现已可用 (1.0.0.M1)。

现有的 spring-integration-kafka 扩展项目 - 当前版本为 1.3.0.RELEASE,支持 Kafka 0.8.x.x,并用于 Spring XD (Kafka MessageBus) 和 Spring Cloud Stream (Kafka Binder)。

这个新项目 (spring-kafka) 将核心组件拆分成一个单独的项目。它基于新的 0.9.0.x 纯 Java Kafka 客户端。

spring-kafka 将熟悉的 Spring 编程模型带给任何 Spring 用户,不仅仅是那些使用 Spring Integration 的用户。即将发布的 spring-integration-kafka 版本将完全重写,利用 spring-kafka

本周 Spring 资讯 - 2016 年 3 月 8 日

工程 | Josh Long | 2016 年 3 月 8 日 | ...

欢迎阅读新一期的《本周 Spring 资讯》!这周我在德国布吕尔参加精彩的 JavaLand 大会,然后去苏格兰拜访一位重要客户,接着去罗马尼亚参加 Voxxed Days Bucharest。如果您在这些地方,我很乐意与您联系

Spring Framework 4.3 中的核心容器改进

工程 | Stéphane Nicoll | 2016 年 3 月 4 日 | ...

Spring Framework 4.3.RC1 即将发布,带来了不错的核心容器改进,我们将在本文中探讨这些改进...

单构造函数场景下的隐式构造函数注入

考虑以下服务类

@Service
public class FooService {

    private final FooRepository repository;

    @Autowired
    public FooService(FooRepository repository) {
        this.repository = repository
    }
}

这是一个非常常见的用例,但如果您忘记在构造函数上使用 @Autowired 注解,容器会抛出异常查找默认构造函数,除非您在 bean 定义设置中明确指定自动装配模式为 'constructor'(例如,在 XML <bean>

本周 Spring 资讯 - 2016 年 3 月 1 日

工程 | Josh Long | 2016 年 3 月 1 日 | ...

欢迎阅读新一期的《本周 Spring 资讯》!本周我在中国深圳和瑞士苏黎世参加 Voxxed Days Zurich。这绝对是忙碌的一周,不过我真心希望能在那儿见到您!无论如何,这周有很多内容要分享,所以让我们开始吧!

本周 Spring 资讯 - 2016 年 2 月 23 日

工程 | Josh Long | 2016 年 2 月 23 日 | ...

欢迎阅读新一期的《本周 Spring 资讯》!我们已经进入二月的最后几周了!

订阅 Spring 时事通讯

通过 Spring 时事通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助力您的进步。

了解更多

获取支持

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

了解更多

即将举行的活动

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

查看全部