Получение автоматической конфигурации с программной регистрацией бинов - PullRequest
0 голосов
/ 06 апреля 2019

Я ищу способ получения автоматической конфигурации (значений), чтобы использовать их внутри регистрации бинов. Я не использую функцию сканирования компонентов и все еще хочу использовать инжектор конструктора. До сих пор я не нашел никакого способа сделать это, и нет документации, которая показывает, что должно быть сделано.

В следующем примере я хочу инициализировать PubSubTemplate (spring gcp). Ктор принимает два параметра: PublisherFactory и SubscriberFactory. Им самим нужна GcpProjectIdProvider. Автоматическая конфигурация весной имеет значение для последнего. Как было сказано ранее, я не смог найти способ получить это значение.

beans {

    bean<GcpProjectIdProvider> {
        DefaultGcpProjectIdProvider()
    }
    bean<PublisherFactory>("publisher") {
        DefaultPublisherFactory(ref())
    }
    bean<SubscriberFactory>("subscriber") {
        DefaultSubscriberFactory(ref())
    }
    bean<PubSubOperations> {
        PubSubTemplate(ref<PublisherFactory>("publisher"), ref<SubscriberFactory>("subscriber"))
    }

}

Другой сервис будет использовать этот шаблон для выполнения некоторых операций:

open class FooBarServiceImpl(private val pubSubTemplate: PubSubTemplate) {

  fun doSomething() {
    pubSubTemplate.subscribe(...) { ... }
  }

}

Проблема с кодом, который я показал, заключается в том, что GcpProjectIdProvider не содержит правильную информацию. Эта информация доступна из автоматической конфигурации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...