有没有办法使用 java 注释在 spring 集成中编写过滤器?
Is there a way to write a filter in spring-integration using java annotation?
我正在尝试在 spring 集成中转换 xml 配置,我遇到了一个过滤器,如下所示:
<
int:filter
expression="someFilterExpression"
input-channel="inputChannel"
output-channel="outputChannel"
discard-channel="discardChannel"
/>
有没有办法为此提出一个 Java 等效注释?我试过使用@Filter 注释,但它没有在其中包含表达式字段。
我不确定我是否完全理解你的问题。如果您使用注释,其全部原因是因为您有一些复杂的逻辑,不能或不应该用SpEL表达, 所以它给了你写一些 java 代码的机会,让框架知道这是一个过滤器。
还有 DSL,我认为这个 post 涵盖得很好 -
感谢您为我指明了正确的方向。进一步详细说明我做了什么。我放入 spring 集成 dsl 依赖项
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-java-dsl</artifactId>
<version>1.2.3.RELEASE</version>
</dependency>
并使用 IntegrationFlows 构建过滤器。我是通过以下方式完成的:
@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"
/>
再次感谢您的回答。 :)
我正在尝试在 spring 集成中转换 xml 配置,我遇到了一个过滤器,如下所示:
<
int:filter
expression="someFilterExpression"
input-channel="inputChannel"
output-channel="outputChannel"
discard-channel="discardChannel"
/>
有没有办法为此提出一个 Java 等效注释?我试过使用@Filter 注释,但它没有在其中包含表达式字段。
我不确定我是否完全理解你的问题。如果您使用注释,其全部原因是因为您有一些复杂的逻辑,不能或不应该用SpEL表达, 所以它给了你写一些 java 代码的机会,让框架知道这是一个过滤器。
还有 DSL,我认为这个 post 涵盖得很好 -
感谢您为我指明了正确的方向。进一步详细说明我做了什么。我放入 spring 集成 dsl 依赖项
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-java-dsl</artifactId>
<version>1.2.3.RELEASE</version>
</dependency>
并使用 IntegrationFlows 构建过滤器。我是通过以下方式完成的:
@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"
/>
再次感谢您的回答。 :)