【问题标题】:NotifierConfiguration example in 2.1.4 SBA documentation2.1.4 SBA 文档中的 NotifierConfiguration 示例
【发布时间】:2019-06-13 18:42:59
【问题描述】:

我正在尝试在我的 Spring Boot Admin 应用程序中实现 RemindingNotifier,但代码 sn-p given in documentation 使用了一个未在任何地方声明的“存储库”变量。这个变量如何获取?

Code Snippet

@Configuration
public class NotifierConfiguration {
    @Autowired
    private Notifier notifier;

    @Primary
    @Bean(initMethod = "start", destroyMethod = "stop")
    public RemindingNotifier remindingNotifier() {
        RemindingNotifier notifier = new RemindingNotifier(notifier, repository);
        notifier.setReminderPeriod(Duration.ofMinutes(10)); 
        notifier.setCheckReminderInverval(Duration.ofSeconds(10)); 
        return notifier;
    }
}

【问题讨论】:

  • 欢迎来到 StackOverflow。请将您的代码发布为文本,而不是图像。图片不可搜索。此外,在这里自愿回答问题的人都是忙碌的人,就像你一样。因此,他们在自己的环境代码中复制、粘贴和测试代码越容易,您得到答案的速度就越快。 :-)
  • 嗨,Ageax,我先尝试这样做,但由于一些格式问题,网站不允许我发布代码。因此我使用图像作为解决方法。
  • 啊,好吧。一些新的问题处理方式,需要一点时间来适应。我对 Spring Boot Admin 一无所知,但看起来变量已传递到构造函数中。见第 80 行 github.com/codecentric/spring-boot-admin/blob/…

标签: spring-boot-admin


【解决方案1】:

所以我能够通过使用 SBA 文档中的这个来解决这个问题。

    @Configuration
    public static class NotifierConfig {
        private final InstanceRepository repository;
        private final ObjectProvider<List<Notifier>> otherNotifiers;

        public NotifierConfig(InstanceRepository repository, ObjectProvider<List<Notifier>> otherNotifiers) {
            this.repository = repository;
            this.otherNotifiers = otherNotifiers;
        }

        @Bean
        public FilteringNotifier filteringNotifier() { 
            CompositeNotifier delegate = new CompositeNotifier(otherNotifiers.getIfAvailable(Collections::emptyList));
            return new FilteringNotifier(delegate, repository);
        }

        @Primary
        @Bean(initMethod = "start", destroyMethod = "stop")
        public RemindingNotifier remindingNotifier() { 
            RemindingNotifier notifier = new RemindingNotifier(filteringNotifier(), repository);
            notifier.setReminderPeriod(Duration.ofMinutes(10));
            notifier.setCheckReminderInverval(Duration.ofSeconds(10));
            return notifier;
        }
    }

【讨论】:

    猜你喜欢
    • 2011-07-06
    • 1970-01-01
    • 2016-10-24
    • 1970-01-01
    • 1970-01-01
    • 2010-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多