首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何延迟bean直到所有春季云连接器扫描完成?

如何延迟bean直到所有春季云连接器扫描完成?
EN

Stack Overflow用户
提问于 2017-02-12 14:36:06
回答 2查看 1K关注 0票数 3

在完成Spring云自动配置之后,我需要延迟我的应用程序“服务”bean处理。

"service“bean同时依赖于SQL DataSource和其他Bean (S3存储库),这是可选的,可以基于云服务配置或直接配置的属性(甚至根本不创建)创建。基础S3和SQL服务都是根据各种外部条件完美地配置的。他们表现良好的直接,内在性质,云等。

所以现在我有了类似的..。

代码语言:javascript
复制
@Autowired(required=false)
S3Storage s3;

@Autowired
SQLDatabase db;

@Bean
MyService myservice() {
  if (s3 != null) {
    return new SQLWithS3Implementation(db, s3);
  } else {
    return new SQLImplementation(db);
  }
}

我对这个Bean做了些什么,以便在使用cloud服务(使用spring-cloud-connectors)之前没有处理s3,但它是空的?

  • 我不能要求s3。它并不总是被配置的。
  • 我不能用@Lazy。其他部门的推荐人..。至少会很乱(如果可能的话)。

我需要像..。

代码语言:javascript
复制
@ProcessAfter(CloudAutoConfiguration.class)

但是如何在Spring Boot / Spring Cloud中真正做到这一点呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-17 18:51:25

在这种特殊情况下,除了“所有权的逆转”,没有什么能帮助我。

我已经更改了云服务扫描上的@Bean结果。现在,它创建的不是存储服务信息,而是使用这些属性创建的存储库。

代码语言:javascript
复制
@ServiceScan
public class S3CloudCOnfig extends AbstractCloudConfig {

    @Autowired
    @Bean
    public S3Repository s3Repository(final MyService service) {

        // Cloud service configuration.
        S3Properties properties = null;
        try {
        } catch (...) {
            // No service is configured...
        }

        S3Repository result = null;
        if (properties) {
            result = new S3Repository(properties);
            service.setObjectStorage(service);
        }
        return result;
    }
}

因为service是100%配置的,仅通过普通配置,可选的S3Repository而不是服务上的寄存器。这解决了S3存储库是可选的问题。

service逻辑在可用的S3存储库上只是帐户可选策略。所以没有任何@Autowired(required = false)

票数 0
EN

Stack Overflow用户

发布于 2017-02-12 18:08:40

在Spring中,您可以使用@ConditionalOnBean Doc:http://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/condition/ConditionalOnBean.html

代码语言:javascript
复制
   @ConditionalOnBean(CloudAutoConfiguration.class)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42188871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档