Spring-integration-jdbc StoredProcOutboundGateway с DSL

Кто-нибудь делал конфигурацию spring-integration-jdbc StoredProcOutboundGateway с DSL?


person Sam    schedule 12.10.2017    source источник


Ответы (1)


Для JDBC нет Spring Integration Java DSL. Не стесняйтесь поднять JIRA по этому вопросу.

В качестве обходного пути у нас действительно нет выбора, кроме как использовать класс StoredProcOutboundGateway из общего метода .handle() EIP:

@Bean
public StoredProcExecutor storedProcExecutor() {
    StoredProcExecutor storedProcExecutor = new StoredProcExecutor(this.dataSource);
    storedProcExecutor.setStoredProcedureName("CREATE_USER_RETURN_ALL");
    storedProcExecutor.setIsFunction(true);
    ...
    return storedProcExecutor;
}

...

    StoredProcOutboundGateway storedProcOutboundGateway = new StoredProcOutboundGateway(storedProcExecutor());
    storedProcOutboundGateway.setExpectSingleResult(true);
    storedProcOutboundGateway.setRequiresReply(true);

...

.handle(storedProcOutboundGateway)
person Artem Bilan    schedule 12.10.2017
comment
Спасибо @Arthem, за быстрый ответ, есть ли у нас пример кода, в котором все аспекты StoredProcOutboundGateway представлены в коде Java, а не в конфигурации XML. У меня есть вариант использования, когда имя хранимой процедуры и параметр будут частью заголовка сообщения, и я хочу использовать SpEL. Можно ли это сделать с помощью кода Java (не XML). Есть ли у нас какой-либо эталонный код или модульный тест? - person Sam; 12.10.2017
comment
Ну да... к сожалению нет. Однако должно быть ясно, что здесь все зависит от StoredProcExecutor. См. его JavaDocs для получения дополнительной информации. Если вам нужен setStoredProcedureNameExpression(Expression), вы должны заглянуть в SpelExpressionParser: docs.spring.io/spring/docs/5.0.0.RELEASE/. Для параметров из сообщения вы должны использовать setProcedureParameters(List<ProcedureParameter>) и использовать его expression. Пожалуйста, поднимите JIRA по этому вопросу, чтобы добавить пример в Документы: jira.spring.io/browse/INT< /а> - person Artem Bilan; 13.10.2017
comment
Спасибо @Arthem, ваше руководство помогло. Следуя предоставленной вами ссылке на документ. теперь у меня есть компоненты jdbc с IntegrationFlow, работающими как шарм. - person Sam; 13.10.2017
comment
также см. jira.spring.io/browse/INT-4529, чтобы узнать о проблеме, связанной с Jira. - person dschulten; 04.09.2018