A anotação @MessagingGateway
pode defaultRequestChannel
ser definida usando o espaço reservado para propriedade ${}:
@MessagingGateway(defaultRequestChannel = "${gateway.request.channel}")
public interface MessageGateway {
@Gateway(requestTimeout = 2000)
void sendListing(List<Path> entries);
}
Mas não posso fazer algo semelhante na anotação @Gateway:
@MessagingGateway
public interface MessageGateway {
@Gateway(requestTimeout = 2000, requestChannel = "${gateway.request.channel}") // invalid
void sendListing(List<Path> entries);
}
Da mesma forma, não consigo definir dinamicamente inputChannel
/ outputChannel
do ServiceActivator usando o placeholder de propriedades ou SpEl.
Preciso recorrer à configuração ServiceActivator
manual usando ServiceActivatingHandler
?
O placeholder de propriedade nunca foi trabalhado nessas anotações. Originalmente, tal recurso era apenas uma parte da configuração XML. Embora isso seja realmente possível muito facilmente com a configuração Java e DSL, a evolução da anotação foi deixada para trás. O
@MessagingGateway
foi introduzido um pouco tarde e talresolveEmbeddedValue
foi solicitado de seus atributos.Gostaria de saber que diferença realmente faria para a lógica do aplicativo se esses nomes de canais fossem resolvidos dinamicamente a partir de propriedades.