在ES中,Transport*Action 是比较核心的类集合。这里至少有两组映射关系。
Action -> Transport*Action
Transport*Action -> *TransportHandler
对应的功能是,可以通过Action 找到对应的TransportAction,这些TransportAction 如果是query类,则会调用SearchServiceTransportAction,并且通过第二层映射找到对应的Handler,否则可能就直接通过对应的Service完成操作。
第一层映射关系由类似下面的代码在ActionModule中完成:
第二层映射目前看来只有在查询相关的功能才有,其他的Transport*Action 则只调用对应的Service 来完成实际的操作。类似 SearchServiceTransportAction ,可以看做是SearchService进一步封装。如下: