记录的 MessagingGateway 信息启动了两次

MessagingGateway info logged started twice

这是我的日志,为什么我的端点启动了两次?? 我的配置问题?

61: 2020/09/16 15:56:20,288 4052 [INFO] [main] [integration.endpoint.AbstractEndpoint.start(AbstractEndpoint.java:159)] : started bean 'transactionService.createTransaction.serviceActivator'
63: 2020/09/16 15:56:20,288 4052 [INFO] [main] [integration.endpoint.AbstractEndpoint.start(AbstractEndpoint.java:159)] : started bean 'bank'
65: 2020/09/16 15:56:20,288 4052 [INFO] [main] [integration.endpoint.AbstractEndpoint.start(AbstractEndpoint.java:159)] : started bean 'bank'
67: 2020/09/16 15:56:20,348 4112 [INFO] [main] [embedded.netty.NettyWebServer.start(NettyWebServer.java:109)] : Netty started on port(s): 8767
69: 2020/09/16 15:56:20,366 4130 [INFO] [main] [springframework.boot.StartupInfoLogger.logStarted(StartupInfoLogger.java:61)] : Started 

我刚刚测试了一下,日志看起来略有不同,但最终结果还是一样的:

2020-09-16 09:08:39,592 INFO [main] [org.springframework.integration.gateway.GatewayProxyFactoryBean$MethodInvocationGateway] - started bean 'integrationGraphServerTests$Gate'
2020-09-16 09:08:39,592 INFO [main] [org.springframework.integration.gateway.GatewayProxyFactoryBean$MethodInvocationGateway] - started bean 'integrationGraphServerTests$Gate'
2020-09-16 09:08:39,592 INFO [main] [org.springframework.integration.gateway.GatewayProxyFactoryBean$MethodInvocationGateway] - started bean 'integrationGraphServerTests$Gate'
2020-09-16 09:08:39,593 INFO [main] [org.springframework.integration.gateway.GatewayProxyFactoryBean] - started bean 'integrationGraphServerTests$Gate'

我的Gate是这样的:

@MessagingGateway(defaultRequestChannel = "four")
public interface Gate {

    void foo(String foo);

    void foo(Integer foo);

    void bar(String bar);

}

所以,我们有 3 个方法,因此我们将有 3 个网关。这就是我们看到那 3 个 GatewayProxyFactoryBean$MethodInvocationGateway 日志的原因。

最后一个 GatewayProxyFactoryBean 用于 Gate 接口代理及其解析器的顶级 bean。

因此,在您的情况下,网关接口中可能有 3 个方法。

我们可能需要改进 GatewayProxyFactoryBean 中的逻辑,以在 bean 名称旁边提及方法名称,这样启动日志就会更加清晰。 请随时就此事提出 GH 问题!欢迎投稿!