在本地沙箱

时间:2015-06-17 15:25:36

标签: cloud cloudfoundry

这个问题似乎很天真,但我刚开始使用云代工厂。 我安装了eclipse插件&部署了一个示例应用。但每次,当在本地运行应用程序或启动服务器时,它都被推送到远程云服务器&在独特的域名上运行

xxxxx.cfapps.io

有没有办法在开发期间在localhost上运行应用程序?无需连接远程服务器和每次推送,就像Google App Engine一样。每次推送都会使开发过程变慢。

我尝试在没有互联网连接的情况下启动服务器,但它无法启动。给出sockettimedout异常。

或者是否有任何其他方式或解决方法可以在本地和最后将应用推向云代工厂?

1 个答案:

答案 0 :(得分:1)

您部署到Cloud Foundry的Java应用程序将成为常规.WAR文件(或Spring Boot .JAR),而不依赖于Cloud Foundry环境。因此,您应该可以在本地环境中迭代并测试这些工件。

您应该考虑的唯一重要问题是您的应用是否依赖于Cloud Foundry环境中的绑定服务。在这种情况下,我建议使用Spring Cloud Connectors(http://cloud.spring.io/spring-cloud-connectors/)。

让我们说我的应用程序绑定到Cloud Foundry环境中的Redis服务。我可以像这样用Spring Cloud注入这个服务:

@Autowired(required = false)
private RedisTemplate<String,String> _redisTemplate;

现在,我的代码可以检查_redisTemplate是否为null。如果是这样,我在没有Redis的情况下在本地运行。

或许我确实有一个本地Redis实例来测试。在这种情况下,我选择:

@Autowired
private RedisTemplate<String,String> _redisTemplate;

在我的本地环境中,我启动了环境配置文件本地。使用Spring Profiles,我声明RedisTemplate的实现以使用此配置文件的本地实例。当我部署到Cloud Foundry时,该应用程序将自动以配置文件启动,并将绑定到Cloud Foundry Redis实例而不是本地实例。