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

Допустим, у меня есть следующий класс конфигурации следующим образом:

@Configuration
class Config{
    @Autowired F factory;

    @Bean
    public S stream(){
        return new S(factory);
    }

    @Bean
    public M model(@Autowired S stream){
        return new M'(stream);
    }
}

У меня много этих конфигураций.Один для каждой "модели", которую я строю.Каждая конфигурация имеет фабрику, поток и конечную модель.

При добавлении нового файла конфигурации, подобного этому, я хочу во время компиляции проверить, что при использовании модели типа M 'я такжеиспользуйте поток, который использует фабрику типа F '.

Я думаю, что я могу легко сделать это, имея дополнительный параметр в конструкторе M', который потребует F '.Но, IMO, это будет ужасно, поскольку M 'вообще не использует фабрику ...

Есть мысли об элегантном способе форсировать это во время компиляции?

...