使用cloudfoundry用户提供的自定义spring-boot-starter提供了服务凭据

时间:2018-04-13 06:42:16

标签: java spring-boot cloudfoundry pivotal-cloud-foundry spring-boot-starter

我尝试使用自定义spring-boot-starter,其配置依赖于属性的存在作为我的spring-boot-project中的依赖性。 入门者的配置是这样的:

@Configuration
@ConditionalOnProperty( {"vcap.services.my-user-provided-service.credentials.git.password"})
public class MyConfig {    
    @Bean
    public MyBean createBean() {
        [...]
    }    
}

当我传递属性" vcap.services.my-user-provided-service.credentials.git.password"在本地环境中一切正常。启动命令。 然而,当我将整个部署部署到cloudfoundry时,它并没有创建MyBean,随后启动失败,因为Bean上的@Autowire失败了。该日志表明未创建MyBean,因为缺少属性vcap.services.my-user-provided-service.credentials.git.password

我在cloudfoundry用户提供的服务my-user-provided-service中定义了变量并将其绑定到应用程序,并在cloudfoundry的webconsole中按预期显示在应用程序的env设置中。 当我将变量直接添加到应用程序时(例如通过清单)它可以正常工作,但是我不想在那里获取凭据。

在上下文启动期间,似乎用户提供的服务变量在属性中没有(但是?),因此找不到。他们是否接受了其他财产来源?我是否可能必须使用@AutoConfigureAfter与一些Bean of spring-cloud?我用@AutoConfigureAfter(CloudFoundryVcapEnvironmentPostProcessor.class)试了一下,但没有用。

非常感谢任何帮助。

0 个答案:

没有答案