我正在尝试在 spring-integration 中转换 xml 配置,我遇到了一个过滤器,如下所示:
<
int:filter
expression="someFilterExpression"
input-channel="inputChannel"
output-channel="outputChannel"
discard-channel="discardChannel"
/>
有没有办法为此提出一个等效的 Java 注释?我尝试使用@Filter注释,但它不包括表达式字段。
我不确定我是否完全理解你的问题。如果你使用注释,它的全部原因是因为你有一些复杂的逻辑,不能或不应该用 SpEL 表达,所以它让你有机会编写一些 java 代码,让框架知道这是一个过滤器。 还有DSL,我认为这篇文章很好地涵盖了它 - 弹簧集成dsl过滤器而不是过滤器方法注释
感谢您为我指出正确的方向。进一步详细说明我所做的事情。我放入了弹簧集成 dsl 依赖项
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-java-dsl</artifactId>
<version>1.2.3.RELEASE</version>
</dependency>
并使用集成流来构建过滤器。我通过以下方式做到了:
@Bean
public IntegrationFlow filter() {
return IntegrationFlows
.from("someInputChannel")
.filter(
"someFilterExpression",
e -> e.discardChannel("someDiscardChannel"))
.channel("someOutputChannel")
.get();
}
所以,上面的Java DSL基本上和:
<
int:filter
expression="someFilterExpression"
input-channel="someInputChannel"
output-channel="someOutputChannel"
discard-channel="someDiscardChannel"
/>
再次非常感谢您的回答。 :)