Рубрики
Без рубрики

Вы используете Ломбок? Вашим классам не нужен конструктор с аннотацией параметров.

Вы думаете, как решить эту проблему с ломбоком? @Service публичный класс SomeService {закрытый финал… С тегами java, ломбок, учебник.

Вы думаете, как решить эту проблему с ломбоком?

@Service
public class SomeService {
  private final OtherService otherService;

  public SomeService (@Lazy OtherService otherService) {
    this.otherService = otherService;
  }
}

Я хочу использовать ломбок вот так:

@Service
@RequiredArgsConstructor
public class SomeService {
  @Lazy private final OtherService otherService;
}

но @Ленивый аннотация не будет работать. ломбок будет помечен как просто аннотация поля. но я нашел этот ответ, и это очень помогло:

Дан класс обслуживания животных:

public class AnimalService{

      private DogService dogService;

      private AnimalService(@Lazy DogService dogService){
          this.dogService = dogService;
      }
    }
}

В этом случае, если я хочу использовать аннотации Ломбока, есть ли способ сохранить @ленивую загрузку?

Следующий код будет делать то же самое, что и приведенный выше код?

Да. создайте lombok.config в корневом каталоге вашего проекта и добавьте эту строку.

lombok.copyableAnnotations += org.springframework.context.annotation.Lazy

или скопируйте эту строку и привяжите другую аннотацию, такую как @Value , @Квалификатор или ты хочешь. (примечание: используйте полную подпись аннотации!)

И не беспокойтесь о работе с аннотациями и используйте ломбок!

@Service
@RequiredArgsConstructor
public class SomeService {
  @Lazy private final OtherService otherService;
}

Тогда ломбок будет обработан следующим образом:

@Service
public class SomeService {
  // 30 Sep, 2021: Annotation still remains because of copyableAnnotations.
  @Lazy private final OtherService otherService;

  public SomeService (@Lazy OtherService otherService) {
    this.otherService = otherService;
  }
}

Попался! Счастливого Кодирования!

Оригинал: “https://dev.to/composite/are-you-using-lombok-your-classes-don-t-need-constructor-with-annotation-5480”