with tutorial some example all java spring dependency-injection lombok

java - tutorial - ¿Es posible agregar calificadores en @RequiredArgsConstructor(onConstructor=@__(@ Autowired))?



lombok tutorial (3)

Si quisiera usar la anotación @Qualifier en una inyección de dependencia del constructor, tendría algo como lo siguiente:

public class Example { private final ComponentExample component; @Autowired public Example(@Qualifier("someComponent") ComponentExample component) { this.component = component; } }

Sé que la anotación de lombok para reducir el código de la @RequiredArgsConstructors(onConstructor=@__(@Inject)) y no tengo que incluir un constructor sería la siguiente: @RequiredArgsConstructors(onConstructor=@__(@Inject)) pero esto solo funciona con propiedades sin calificadores.

¿Alguien sabe si es posible agregar calificadores en @RequiredArgsConstructor(onConstructor = @__(@Autowired)) ?


A mi me parece el

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

está funcionando también (probablemente estoy usando lombok más reciente?)

código de ejemplo


Puede usar el truco de primavera para calificar el campo nombrándolo con el calificador deseado sin la anotación de @Qualifier.

@RequiredArgsConstructor public class ValidationController { //@Qualifier("xmlFormValidator") private final Validator xmlFormValidator;


EDITAR:

¡ FINALMENTE ES POSIBLE hacerlo! Puedes tener un servicio definido así:

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

Siempre que tenga un archivo lombok.config como este en la raíz del proyecto:

# 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

Esto se introdujo recientemente en el último lombok 1.18.4, lo escribí en mi blog, y me enorgullece decir que fui uno de los principales impulsores que impulsaron la implementación de la función.