BT

Spring Cloud 1.0リリース

| 作者: Bienvenido David フォローする 0 人のフォロワー , 翻訳者 徳武 聡 フォローする 0 人のフォロワー 投稿日 2014年6月22日. 推定読書時間: 5 分 |

原文(投稿日:2014/06/11)へのリンク

PivotalがSpring Cloud 1.0をリリースした。これは、JVMベースのアプリケーションをクラウド向けにシンプルに開発するためのオープンソースのライブラリを提供する。アプリケーションはさまざまなクラウドサービスに接続でき、実行時にクラウド環境の情報を見つけることができる。Springベースのアプリケーションでもそうでないアプリケーションでも利用することができ、Cloud Foundry、Herokuをサポートする。ほかのプラットフォームへサポートを拡張することもできる。

Spring CloudはCloud ConnectorとService Connectorというふたつの概念がある。A Cloud Connectorはクラウドプロバイダが実装するインターフェースで、ライブラリがクラウドプラットフォームにアクセスできるようにする。Spring Cloud 1.0にはCloud Foundry Cloud ConnectorとHeroku Cloud Connectorがある。一方、Service Connectorはサービスとのコネクションを表すオブジェクトだ。Spring Cloud 1.0はjavax.sql.DataSourceとSpring Dataプロジェクト向けのService Connectorが含まれている。Custom Cloud ConnectorsとService Connectorsはほかのクラウドプラットフォームやサービス向けにも開発される可能性がある。使い方は簡単で、JARファイルをクラスパスに追加するだけだ。

Spring CloudをSpringアプリケーションから使うには、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-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は似ているが、コンポーネントやBeanを探すのではなく、バインドされたサービスを探す。

Cloud FoundryやHerokuへの配置方法を簡単に知るには、Introducing Spring Cloudというブログ記事を読むといいだろう。このブログではSpring Bootサンプルアプリケーションを使っている。Springを利用していないアプリケーションの場合は、Spring Cloud Core READMEを読むといいだろう。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT