写点什么

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

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

关注

评论

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

【FAQ】HarmonyOS SDK 闭源开放能力 —Account Kit

HarmonyOS SDK

HarmonyOS

详解Python中sys模块的功能与应用

华为云开发者联盟

Python 开发 华为云 函数 华为云开发者联盟

Dapp/DeFi/Swap交易所代币质押项目挖矿系统开发详情

l8l259l3365

Python黑科技揭秘:多窗口操作不再是难题,这些技巧让你轻松搞定

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

测试

教你用Ubuntu快速搭建饥荒服务器

华为云开发者联盟

开发 华为云 华为云开发者联盟 华为云服务器 饥荒

请查收!“全国大学生智能汽车竞赛”线上赛备赛指南

飞桨PaddlePaddle

人工智能 百度 AI BAIDU 百度飞桨

探索Terraform实践:优化基础设施管理

SEAL安全

架构 运维 Terraform

QCN9274/Super WiFi 7: Explore the unlimited potential of next-generation networks

wallysSK

华为云云原生专家入选全球顶级开源组织CNCF技术监督委员会

Geek_2d6073

深入了解手机App开发:从构思到上线的全过程

天津汇柏科技有限公司

数字化转型 低代码开发 定制软件开发 软件开发定制

Selenium帮助你轻松实现浏览器多窗口操作

霍格沃兹测试开发学社

AI大模型的发展趋势与应用前景

百度开发者中心

AI 大模型 人工智能、

大神玩花:借助WASM在浏览器中运行数据库

张文平

数据库 postgresql 前端 应用开发 Supabase

JavaScript之structuredClone现代深拷贝

南城FE

JavaScript 前端 深拷贝

读TiDB源码聊设计:引子

泊浮目

分布式数据库 TiDB HTAP

LED户外广告屏寿命的关键因素及解决方案

Dylan

广告 维护 系统维护 LED显示屏 户外LED显示屏

华为云命令行工具KooCLI—高效云端管理的秘诀

华为云PaaS服务小智

云计算 API 华为云

RDS for MySQL Serverless公测上线:弹性伸缩,最高可降成本超80%

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 华为云Serverless

请认真对待你的简历

老张

面试 简历优化 简历

Python黑科技揭秘:多窗口操作不再是难题,这些技巧让你轻松搞定

测试人

Python 软件测试 自动化测试 测试开发

春招开始,面试也多起来了

王磊

Java 面试

掰扯掰扯需求分析:从工程到生活中的4个case

泊浮目

系统设计 需求分析

EthSign联合创始人 POTTER LI 确认出席Hack .Summit() 香港区块链开发者大会!

TechubNews

企业要想构建 AI 竞争力,就必须“私藏”大模型

极狐GitLab

✅被百度追着项目问,上亿数据,限制1G内存,如何去重?

派大星

Java 面试题 互联网大厂面试 数据去重

OpenAI文生视频大模型Sora:重塑视频内容生产

百度开发者中心

视频 大模型 人工智能、

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