如果我们使用@MessagingGateway,则不需要@Gateway
@Gateway is not required if we use @MessagingGateway
从 Spring 4.0 开始引入 @MessagingGateway
。如果我们的Gateway接口中只有一个网关方法就可以使用它,那么我们就不需要用@Gateway
注解Gateway方法了。
下面是我的例子,两者都在工作。
所以,我的问题是当我们在网关接口中只有一个方法时,我们可以停止使用@Gateway
吗?
代码-1:
@MessagingGateway(name="demoGateway")
public interface DemoGateway {
@Gateway(requestChannel = "gatewayRequestChannel",replyChannel = "nullChannel")
void accept(Message<String> request);
}
代码 2:
@MessagingGateway(name="demoGateway",defaultRequestChannel =
"gatewayRequestChannel",defaultReplyChannel = "nullChannel")
public interface DemoGateway {
void accept(Message<String> request);
}
是的。你是对的。您可以执行方法 2,并保留确认 @MessagingGateway
默认配置的单一方法,无需注释。
然而在实践中,我只会将真正的默认值移动到 MessagingGateway
并将其他值留给 @Gateway
注释。
这是因为,如果您将来必须向 DemoGateway
添加更多方法,这将使以后的生活和可读性更轻松。
从 Spring 4.0 开始引入 @MessagingGateway
。如果我们的Gateway接口中只有一个网关方法就可以使用它,那么我们就不需要用@Gateway
注解Gateway方法了。
下面是我的例子,两者都在工作。
所以,我的问题是当我们在网关接口中只有一个方法时,我们可以停止使用@Gateway
吗?
代码-1:
@MessagingGateway(name="demoGateway")
public interface DemoGateway {
@Gateway(requestChannel = "gatewayRequestChannel",replyChannel = "nullChannel")
void accept(Message<String> request);
}
代码 2:
@MessagingGateway(name="demoGateway",defaultRequestChannel =
"gatewayRequestChannel",defaultReplyChannel = "nullChannel")
public interface DemoGateway {
void accept(Message<String> request);
}
是的。你是对的。您可以执行方法 2,并保留确认 @MessagingGateway
默认配置的单一方法,无需注释。
然而在实践中,我只会将真正的默认值移动到 MessagingGateway
并将其他值留给 @Gateway
注释。
这是因为,如果您将来必须向 DemoGateway
添加更多方法,这将使以后的生活和可读性更轻松。