我有一个 mule-config 文件,我在其中定义了一个“http 入站”来接受相应 URL 上的请求。
现在我要做的是只接受一个有效的 http 入站地址并拒绝其他地址。
所以我应用了一个“选择”过滤器来过滤掉有效的 URL。(如下所示):
<flow name="abc">
<http:inbound-endpoint address="http://localhost:1212/jcore/abc"
transformer-refs="HttpParams" responseTransformer-refs="JavaObjectToJson"
contentType="application/json" encoding="UTF-8">
</http:inbound-endpoint>
<component class="main.java.com.jcore.abc"/>
<choice>
<when evaluator="header"
expression="INBOUND:http.request.path=/jcore/abc/a">
<vm:outbound-endpoint path="ToSomething"/>
</when>
<when evaluator="header"
expression="INBOUND:http.request.path=/jcore/abc/b">
<vm:outbound-endpoint path="ToSomething"/>
</when>
<otherwise>
<message-properties-transformer>
<add-message-property key="http.status" value="404"/>
</message-properties-transformer>
<expression-transformer>
<return-argument evaluator="string"
expression="{"Exception": "Could not Render the Request.
URL may be wrong"}"/>
</expression-transformer>
</otherwise>
</choice>
</flow>
这是工作 ..!!
但我有大约 30 个像这样的“流”。我想在每个流程上应用这样的“选择”过滤器。
注意:匹配的 URL 在每种情况下都会发生变化。就像在这种情况下它是“/abc/a”。在其他地方,情况不同
所以,我想知道,是否有一种方法可以避免编写大量冗余代码并使用参数或其他内容制作一个 Spring bean,我可以将其应用于每个流程..??