Ответ 1
РЕДАКТИРОВАТЬ:
Это, наконец, возможно ! Вы можете иметь сервис, определенный следующим образом:
@Service
@RequiredArgsConstructor
public class SomeRouterService {
@NonNull private final DispatcherService dispatcherService;
@Qualifier("someDestination1") @NonNull private final SomeDestination someDestination1;
@Qualifier("someDestination2") @NonNull private final SomeDestination someDestination2;
public void onMessage(Message message) {
//..some code to route stuff based on something to either destination1 or destination2
}
}
При условии, что у вас есть файл lombok.config, подобный этому, в корне проекта:
# Copy the Qualifier annotation from the instance variables to the constructor
# see https://github.com/rzwitserloot/lombok/issues/745
lombok.copyableAnnotations += org.springframework.beans.factory.annotation.Qualifier
Это было недавно введено в последней версии lombok 1.18.4, я написал об этом в своем блоге, и я с гордостью могу сказать, что я был одной из главных движущих сил, продвигающих реализацию этой функции.
- Сообщение в блоге, где проблема обсуждается подробно
- Оригинальный выпуск на github
- И небольшой проект GitHub, чтобы увидеть его в действии