Spring 集成 4 - 如何动态设置网关的 replyTimeout 值?
Spring Integration 4 - How to set a Gateway's replyTimeout value dynamically?
我的网关是这样的...
@MessagingGateway
public interface MyGateway {
@Gateway(requestChannel = "startChannel", replyTimeout = 1000L)
ListenableFuture<Boolean> myFlow();
}
我使用 application.yml
文件来定义我在整个应用程序中使用的一些属性。其中之一是 timeout
值。
我想使 MyGateway
的 replyTimeout
参数可配置。
有人可以建议我该怎么做吗?
请注意,MyGateway
是一个接口,因此我不能使用 @PostConstruct
或 @Autowired
(据我所知)。
提前致谢!
我们有一个关于此事的开放式 JIRA:https://jira.spring.io/browse/INT-3615。
但我有一个解决方法:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@MessagingGateway
public @interface MyMessagingGateway {
String defaultReplyTimeout() default "" + Long.MIN_VALUE;
}
并像这样使用此注释:
@MyMessagingGateway(defaultReplyTimeout = "${reply.timeout}")
public interface MyGateway {
@Gateway(requestChannel = "startChannel")
ListenableFuture<Boolean> myFlow();
}
我的网关是这样的...
@MessagingGateway
public interface MyGateway {
@Gateway(requestChannel = "startChannel", replyTimeout = 1000L)
ListenableFuture<Boolean> myFlow();
}
我使用 application.yml
文件来定义我在整个应用程序中使用的一些属性。其中之一是 timeout
值。
我想使 MyGateway
的 replyTimeout
参数可配置。
有人可以建议我该怎么做吗?
请注意,MyGateway
是一个接口,因此我不能使用 @PostConstruct
或 @Autowired
(据我所知)。
提前致谢!
我们有一个关于此事的开放式 JIRA:https://jira.spring.io/browse/INT-3615。
但我有一个解决方法:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@MessagingGateway
public @interface MyMessagingGateway {
String defaultReplyTimeout() default "" + Long.MIN_VALUE;
}
并像这样使用此注释:
@MyMessagingGateway(defaultReplyTimeout = "${reply.timeout}")
public interface MyGateway {
@Gateway(requestChannel = "startChannel")
ListenableFuture<Boolean> myFlow();
}