阿里云ODPS普惠算力再升级,Data+AI全产品降价低至59元! 了解详情
写点什么

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:505081
用户头像

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

关注

评论

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

探索HarmonyOS:一键掌握Router与NavPathStatck的传参和页面回调技巧

李小轰

HarmonyOS NEXT

V7.5.3安装tidb ipv6集群(redhat 7.9)

TiDB 社区干货传送门

管理与运维 安装 & 部署 7.x 实践

记一起 TiFlash 副本同步被卡住的问题

TiDB 社区干货传送门

管理与运维 7.x 实践

GreatSQL内存消耗异常排查攻略:从系统到应用层面的深入分析

GreatSQL

【解锁】华为云全栈可观测平台——9月10月新功能特性

平平无奇爱好科技

必看!淘宝商品详情数据接口调用,助力商城上货实战全流程(仅供参考)

tbapi

淘宝商品详情接口 商品上货接口

关注度上升,交易量直线上涨,Base Season 即将到来?

TechubNews

小红书详情API接口的获取与应用

科普小能手

API Python JSON 小红书API接口 小红书笔记接口 小红书API

怎么知道 AI 能帮我写多少代码?

CodeBuddy

腾讯 #腾讯云

HarmonyOS :ArkUI `动态组件` 与`组件工厂` 的最佳封装策略

李小轰

HarmonyOS NEXT

50万奖金池等你来战! 第二届OpenHarmony创新应用挑战赛再度起航

科技热闻

TiDB 无统计信息时执行计划如何生成

TiDB 社区干货传送门

管理与运维 TiDB 源码解读

亚洲唯一!华为云入选Gartner®云应用平台魔力象限

平平无奇爱好科技

ClkLog埋点系统基于ClickHouse的百万日活测试报告

ClkLog

测试 数据采集 sdk 用户分析 开源软件

HarmonyOS :扩展修饰器,实现节流、防抖、权限申请

李小轰

HarmonyOS NEXT

定档12月20日!星宸科技2024开发者大会暨产品发布会举办在即

科技热闻

华为云软件开发生产线(CodeArts)10月新功能特性

平平无奇爱好科技

HarmonyOS :自定义弹窗(CustomDialog)的解耦实践

李小轰

HarmonyOS NEXT

Domino 流计算快速上手 - 2. 聚集

YMatrix 超融合数据库

数据库 数据仓库 流计算 超融合数据库

内存分配 Allocstall 导致 SQL 抖动的分析

TiDB 社区干货传送门

管理与运维 故障排查/诊断

TiDB 优化器丨执行计划和 SQL 算子解读最佳实践

TiDB 社区干货传送门

HarmonyOS :适配折叠屏展开与收起,实现单屏与双屏UI的无缝切换

李小轰

HarmonyOS NEXT

租用 4090 算力云电脑,这些性能指标需关注!

Finovy Cloud

云桌面 显卡 云电脑

淘宝天猫API接口:解锁商品详情与关键字搜索的无限可能

代码忍者

API 接口 pinduoduo API

HarmonyOS UI动态化:探索自定义组件的创建与实时更新技术

李小轰

HarmonyOS NEXT

基于 AutoFlow 快速搭建基于 TiDB 向量能力的本地知识库问答机器人

TiDB 社区干货传送门

8.x 实践

TIDB 利用follower 角色实现读写分离

TiDB 社区干货传送门

实战丨证券 HTAP 混合业务场景的难点问题应对

TiDB 社区干货传送门

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