Я использую lombok в своем проекте с большим количеством классов с @RequiredArgsConstructors
. Я бы хотел, чтобы эти конструкторы автоматически использовались в guice.
Один из вариантов, который работает, — это использовать @RequiredArgsConstructors(onConstructor=@__(@Inject))
, но это и уродливо, и экспериментально (читай: скорее всего исчезнет с ломбока в будущем).
Что я думаю сделать, так это создать пользовательскую аннотацию для инъекции, скажем, @InjectOnlyConstructor
, чтобы поместить определение моего класса и использовать SPI guices для привязки этих типов. Но я не могу понять, как обнаружить эти типы в SPI.
Как я могу просматривать элементы guice и привязываться к этим конструкторам, которые guice по умолчанию отклоняет?
Пример того, как я хочу, чтобы класс выглядел:
@Singleton
@InjectOnlyConstructor
@RequiredArgsConstructor
public class CatPictureService {
private final WebServiceClient client;
// Cool stuff that would make facebook cry
}
В качестве резервного плана у меня может быть модуль, который сканирует пакеты моего проекта и автоматически связывает эти типы.