У меня есть приложение Dropwizard, которое должно генерировать дюжину или около того beans для каждой из конфигураций в списке конфигурации. Такие вещи, как проверки работоспособности, планировщики кварца и т.д.
Что-то вроде этого:
@Component
class MyModule {
@Inject
private MyConfiguration configuration;
@Bean
@Lazy
public QuartzModule quartzModule() {
return new QuartzModule(quartzConfiguration());
}
@Bean
@Lazy
public QuartzConfiguration quartzConfiguration() {
return this.configuration.getQuartzConfiguration();
}
@Bean
@Lazy
public HealthCheck healthCheck() throws SchedulerException {
return this.quartzModule().quartzHealthCheck();
}
}
У меня есть несколько экземпляров MyConfiguration, для которых все нужны beans следующим образом. Сейчас я должен скопировать и вставить эти определения и переименовать их для каждой новой конфигурации.
Можно ли каким-то образом перебирать классы конфигурации и генерировать набор определений bean для каждого из них?
Мне было бы хорошо с подклассифицирующим решением или любым безопасным типом, не заставляя меня копировать и вставлять один и тот же код и переименовывать методы когда-нибудь, когда я должен добавить новую услугу.
EDIT: Я должен добавить, что у меня есть другие компоненты, которые зависят от этих beans (например, они вводят Collection<HealthCheck>
).