写点什么

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

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

关注

评论

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

专访浪潮信息:AI 原生时代,浪潮信息引领服务器操作系统创新 全面贡献龙蜥社区

OpenAnolis小助手

开源 操作系统 龙蜥社区 龙蜥操作系统大会

Cloud Kernel SIG 月度动态:ANCK 新增多家厂商硬件新特性支持

OpenAnolis小助手

开源 操作系统 龙蜥社区 龙蜥sig

专访阿里云:AI 时代服务器操作系统洗牌在即,生态合作重构未来

OpenAnolis小助手

开源 AI 操作系统 龙蜥社区 龙蜥操作系统大会

面试官:GROUP BY和DISTINCT有什么区别?

王磊

在 React 中模拟输入

yuanyxh

前端 js react context

inBuilder低代码平台新特性推荐-第二十四期

inBuilder低代码平台

低代码 表单设计

多协议数据库管理工具:Navicat Premium (Win&Mac) 中文激活版

你的猪会飞吗

Navicat Premium Navicat Premium 16 Navicat Premium 中文版

Spring Boot 整合 MyBatis 的详细步骤(两种方式)

不在线第一只蜗牛

Spring Boot 后端

万界星空科技饮料行业生产管理MES系统解决方案

万界星空科技

工业互联网 mes 万界星空科技 饮料行业 食品饮料

openGemini 发布人才培养计划,与顶尖的数据库专家并肩成长

华为云开发者联盟

#开源

探索大模型和 Multi-Agent 在运维领域的实践

华为云开发者联盟

AIGC

京东云JoyCoder荣获AI4SE“银弹”优秀案例

京东科技开发者

豆包MarsCode IDE 搭建 VitePress 博客并使用 GitHub 部署

豆包MarsCode

人工智能 程序员 AI 开发者 计算机

从源码角度,深度解读 MySQL 优化器的 GROUP BY 优化策略

华为云开发者联盟

数据库

CDN加速是什么?CDN加速的原理是什么?

Ogcloud

CDN 网络加速 CDN加速 CDN技术 CDN网络加速

恭喜!龙蜥社区2024年中三大奖项评选名单新鲜出炉

OpenAnolis小助手

开源 操作系统 龙蜥社区

专访AMD:AMD 正式加入龙蜥社区首秀:开源协作与 AI 创新的交汇点

OpenAnolis小助手

开源 AI 操作系统 龙蜥社区

AI 镜像云市场伙伴招募计划发布!服务商闭门会精彩回顾 | 2024 龙蜥大会

OpenAnolis小助手

开源 操作系统 龙蜥社区 AI 镜像

AI 场景下如何构建运维的标准化能力?SOMA 智能运维计划发布 | 2024 龙蜥大会

OpenAnolis小助手

开源 操作系统 系统运维 龙蜥社区 龙蜥社区系统运维联盟

恭喜!龙蜥赛题队获得 2024 大学生操作系统能力大赛 OS 功能挑战赛道三等奖

OpenAnolis小助手

开源 操作系统 龙蜥社区

Nexpose 6.6.270 发布下载,新增功能概览

sysin

漏洞扫描 Nexpose

阿里巴巴拍立淘API返回值:商家优化商品信息的参考

技术冰糖葫芦

API Gateway API 接口 API 测试 pinduoduo API

个人GPU云服务器是什么

Ogcloud

gpu 云主机 云服务器 GPU云服务器 云服务器租用

行业报告:仅百度文心智能体平台实现帮开发者赚钱

极客天地

解决 AI 算法开发和存储难题,华为云 DTSE 助力文华云技术架构升级

华为云开发者联盟

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