В настоящее время используется интеграция с пружиной 4.2.8.
Мне удалось решить довольно много моих предыдущих вопросов по этому поводу, но у меня есть 1 фрагмент конфигурации xml, я не могу понять, как заменить новую конфигурациюclass: это logging-channel-adapter, который, кажется, не соответствует классу.
Единственный класс, который я могу найти, - это LoggingChannelAdapterParser, но он просто предназначен для чтения xml и вывода чего-либо (AbstractBeanDefinition)
Как мне указать выходные данные журнала в receientListRouter?
<int:logging-channel-adapter id="dlq-logger" level="ERROR" expression="'Unknown action type ['
.concat(headers.actionType)
.concat('] for message with payload ')
.concat(payload)"/>
<int:recipient-list-router input-channel="jms-inbound" id="action-type-router">
<int:recipient channel="inbound1" selector-expression="headers.actionType == 'CREATE'"/>
<int:recipient channel="inbound2" selector-expression="headers.actionType == 'UPDATE'"/>
<int:recipient channel="dlq-logger" selector-expression="headers.actionType != 'UPDATE' and headers.actionType != 'CREATE' "/>
</int:recipient-list-router>
Вот конструктор receinetListRouter
@ServiceActivator(inputChannel = "routingChannel")
@Bean
RecipientListRouter actionTypeRouter(){
RecipientListRouter router = new RecipientListRouter();
router.setChannels()
router.addRecipient("Inbound1", "headers.actionType == 'CREATE'")
router.addRecipient("Inbound2", "headers.actionType == 'UPDATE'")
router.addRecipient("dlqLogger", "headers.actionType != 'UPDATE' and headers.actionType != 'CREATE' ")
}
Правка - из ответа Гэри Если, как кажетсяразумно, это наиболее вероятный ответ, каким способом я могу связать его, может ли обработчик регистрации быть получателем?если так, то мне все еще нужна аннотация ServiceActivator?Или это двусторонние отношения?
@Bean
@ServiceActivator(inputChannel = "logChannel")
public LoggingHandler logging() {
LoggingHandler adapter = new LoggingHandler(LoggingHandler.Level.DEBUG);
adapter.setLoggerName("TEST_LOGGER");
adapter.setLogExpressionString("headers.id + ': ' + payload");
return adapter;
}