is it possible to add qualifiers in @RequiredArgsConstructor(onConstructor = @__(@Autowired))?

EDIT:

It is FINALLY POSSIBLE to do so! You can have a service defined like this:

@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
   }

 } 

Provided that you have a lombok.config file like this in the root of the project:

# 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

This was recently introduced in latest lombok 1.18.4, I wrote about it in my blogpost, and I am proud to say I was one of the main driving forces pushing for the implementation of the feature.

  • The blog post where the issue is discussed in detail
  • The original issue on github
  • And a small github project to see it in action

You may use spring trick to qualify field by naming it with desired qualifier without @Qualifier annotation.

@RequiredArgsConstructor
public class ValidationController {

  //@Qualifier("xmlFormValidator")
    private final Validator xmlFormValidator;

For me it seems the

@RequiredArgsConstructor(onConstructor=@__(@Autowired))

is working too (probably I'm using newer lombok?)

example code