写点什么

Spring Cloud 1.0 – 云平台抽象化

  • 2014-06-30
  • 本文字数:1562 字

    阅读完需:约 5 分钟

Pivotal 最近发布了 Spring Cloud 1.0 开放源码库,为基于 JVM 的云应用开发提供了一种简单的开发方式。他可使应用程序连接到不同的云服务并且在运行时获取云环境的信息。无论是否基于 Spring,应用程序都可以使用 Spring Cloud。Spring Cloud 1.0 目前支持 Cloud Foundry 和 Heroku 两种云平台,也可以通过扩展来支持更多的云平台。

Spring Cloud 引入了云平台连接器(Cloud Connector)和服务连接器(Service Connector)的概念。云平台连接器是一个接口,需要由云平台提供者进行实现,以便库中的其他模块可以与该云平台协同工作。Spring Cloud 1.0 自带了 Cloud Foundry 和 Heroku 两个平台的云平台连接器。服务连接器是一个对象,它代表着与服务的连接。Spring Cloud 1.0 中包含了连接到 javax.sql.DataSource 和各 Spring Data 项目的服务连接器。开发者也可以定制开发云平台连接器和服务连接器以支持其他的云平台和服务,只需要将连接器打包成 JAR 文件并添加到 classpath 中即可。

在基于 Spring 的应用中使用 Spring Cloud,需要添加对 _spring-cloud-spring-service-connector_ 的依赖。Maven 依赖的代码片段如下:

复制代码
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-spring-service-connector</artifactId>
<version>1.0.0.RELEASE</version>
</dependency>

在不基于 Spring 的应用中使用 Spring Cloud 则需要添加对 _spring-cloud-core_ 的依赖。

复制代码
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-core</artifactId>
<version>1.0.0.RELEASE</version>
</dependency>

如果希望应用程序既能部署在 Cloud Foundry 也能部署在 Heroku 上,则需要同时添加如下两个依赖。

复制代码
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-cloudfoundry-connector</artifactId>
<version>1.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-heroku-connector</artifactId>
<version>1.0.0.RELEASE</version>
</dependency>

下面是一个关于获取 DataSource 服务和 ApplicationInstanceInfo 的例子。ApplicationInstanceInfo 提供了这个实例中与云平台相关的信息。

复制代码
// MyController.java
@Controller
public class MyController {
@Autowired(required = false) DataSource dataSource;
@Autowired ApplicationInstanceInfo instanceInfo;
...
}
// CloudConfig.java
@Configuration
@ServiceScan
@Profile("cloud")
public class CloudConfig extends AbstractCloudConfig {
@Bean
public ApplicationInstanceInfo applicationInfo() {
return cloud().getApplicationInstanceInfo();
}
}

注解 _@Profile(“cloud”)表示我们希望这一配置只在云环境中加载。注解@ServiceScan_ 会扫描所有的服务并创建一个用于自动装配的 bean。@ServiceScan_ 类似于@ComponentScan_,不过与 _@ComponentScan_ 扫描组件和 bean 不同,_@ServiceScan_ 扫描绑定的服务。

关于如何将 Spring Cloud 部署到 Cloud Foundry 和 Heroku 的快速攻略,可以参考 Spring Cloud 简介的博客。这篇博文使用了一个 Spring Boot 的示例程序。对于不基于 Spring 的应用程序可以参考 Spring Cloud Core README 的使用说明。

查看原文链接: Spring Cloud 1.0 - Cloud Platform Abstraction


感谢马国耀对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-06-30 23:505125
用户头像

发布了 75 篇内容, 共 65.8 次阅读, 收获喜欢 6 次。

关注

评论

发布
暂无评论
发现更多内容

用友BIP+DeepSeek催生超级智能体:10分钟构建一个企业级智能助理

用友智能财务

AI for Science

通过 Airbyte 将数据从 AutoMQ 迁移同步到云数仓

AutoMQ

云计算 大数据 kafka 部署 流处理

项目管理系统(源码+讲解+演示)

深圳亥时科技

《Operating System Concepts》阅读笔记:p95-p124

codists

操作系统

DeepSeek 入门指导手册——从入门到精通【1】

派大星

【FAQ】HarmonyOS SDK 闭源开放能力 —Ads Kit(2)

HarmonyOS SDK

harmoyos

Prometheus 历史峰值看不到了,这监控不准啊

巴辉特

Prometheus Nightingale 监控告警 夜莺监控 运维监控

项目管理系统(源码+文档+讲解+演示)

深圳亥时科技

人工智能丨DeepSeek来袭!普通人的短视频创作,也能如此高大上?

测试人

一文简单了解云安全以及云管平台的区别

行云管家

云计算 云管平台 云管理

华为薪资对照表!建议收藏

王磊

DeepSeek来袭!普通人的短视频创作,也能如此高大上?

测吧(北京)科技有限公司

测试

大数据AI一体化开发再加速:DataWorks 支持GPU类型资源

阿里云大数据AI技术

大数据 Serverless AI 数据处理 Dataworks

零信任应用侧理性选择并期许未来

芯盾时代

身份安全 零信任 统一身份管理平台

GreatSQL修改配置文件参数无法生效

GreatSQL

数据库

Svelte 最新中文文档教程(18)—— 命令式组件 API

冴羽

vue.js 前端 前端框架 Svelte SvelteKit

内核探究|Apache Cloudberry 透明数据加密(TDE)技术解析

酷克数据HashData

华为游戏中心游戏节盛大开启,鸿蒙原生游戏实力强得飞起

最新动态

TiDB 为华安基金提供强大数据底座,加速数智化转型升级

先锋IT

Kubernetes 跨集群 Pod 可用性保护

字节跳动开源

高可用性 多集群管理 Kubernetes Federation PodDisruptionBudget 准入控制

昇腾MindStudio模型量化方案,助力企业轻量级部署DeepSeek

新消费日报

项目管理全流程平台(源码+文档+讲解+演示)

深圳亥时科技

直播预告 | 连播2天!DeepSeek爆红密码+对AI技术、职业与商业的影响

天翼云开发者社区

AI应用 DeepSeek

社交与AI的碰撞:小红书与DeepSeek能否撼动百度的江山?

测吧(北京)科技有限公司

智能制造中的SCADA系统

积木链小链

数字化转型 智能制造 SCADA

Spring Cloud 1.0 – 云平台抽象化_Java_Bienvenido David_InfoQ精选文章