Cloud Foundry是一个开源的PaaS云计算平台,由VMware发起,得到了业界广泛的支持,它提供给开发者们自由度去选择云平台、开发框架和应用服务,让大家能够快速地进行开发、测试、部署和扩展应用。
借助Cloud Foundry中提供的服务,可以编写出高效的应用程序,让Spring的编程模型优势更明显,提高开发者的生产能力,提高代码质量,还可以增加应用服务之间的可移植性等等。
开始需要先建立一个services的实例,然后将service和application绑定,如图所示:
Spring的配置选项有:Auto-reconfiguration,自动重新配置机制,让典型的Spring应用程序在不进行任何更改的情况下就可以使用服务。
CloudEnvironment:可以自动解析JSON:
CloudEnvironment env = new CloudEnvironment();
Properties props = env.getCloudProperties();
String prop = props.getProperty("cloud.services.mysql1.connection.hostname");
ApplicationInstanceInfo instanceInfo = env.getInstanceInfo();
int port = instanceInfo.getPort();
List<String> urls = instanceInfo.getUris();
……
而且还可以创建DataSources:
public DataSources dataSource() {
CloudEnvironment environment = new CloudEnvironment();
RdbmsServiceInfo mysqlSvc =
environment.getServiceInfo("mysql1",RdbmsServiceInfo.class);
RdbmsServiceCreator dataSourceCreator = new RdbmsServiceCreator();
DataSource dataSource = dataSourceCreator.createService(mysqlSvc);
return dataSource;
}
当然,可以在Cloud Foundry上使用Rabbit,配置一个ConnectionFactory,代码如下:
<rabbit:template id = "rabbitTemplate" connection-factory =
"rabbitConnectionFactory"/>
<beans profile = "default">
…
<rabbit:connection-factory id = "rabbitConnectionFactory"/>
</beans>
<beans profile = "cloud">
…
<cloud:rabbit-connection-factory id = "rabbitConnectionFactory"/>
</beans>
Spring是理想的云计算平台,它可以提供不同环境下的便携性,可以提供应用整合机制,比如进行远端进程调用和异步通信等。利用Cloud Foundry,开发人员只需要选择合适的服务类型,而无需担心如何操作相关服务。Cloud Foundry和Spring的结合很强悍。