扩展Dubbo TelnetHandler或重写默认invoke实现

Dubbo的很多扩展都是通过其SPI机制来完成的,可以在服务启动时,使用自定义的实现来达到某些功能,这里不做SPI的介绍,需要查看可移步官网http://dubbo.apache.org/zh-cn/docs/source_code_guide/dubbo-spi.html进行查看。

TelnetHandler(注意:2.7.0和之前版本的包名有所变化)主要用于客户端通过telnet 命令连接至dubbo服务后命令的具体实现,telnet后的很多命令,官网都有其默认的TelnetHandler实现,例如:

 

如果要自己扩展新的命令,首先实现TelnetHandler接口,并在想项目的resources目录下新建META-INF/dubbo目录,然后新建一个名为org.apache.dubbo.remoting.telnet.TelnetHandler的文本文件,这个时2.7.0+版本的文件名,2.5.x,2.6.x的版本文件名则为com.alibaba.dubbo.remoting.telnet.TelnetHandler,假设新命令为test则,文件内容为test=com.xxx.XXXTelnetHandler,保存后,还须配置dubbo:provider,如<dubbo:provider telnet=”test” />,至此启动服务,telnet连接后,即可用test命令进行测试,便可进入XXXTelnetHandler中的telnet方法。

如果要重写默认的一些命令该如何做呢?比如invoke?如果把上文中配置的test改为invoke是否就可以了呢?答案是不可以!!!

要想重写invoke或其他命令的默认实现,除了修改test为invoke外,还需将com.alibaba.dubbo.remoting.telnet.TelnetHandler的文件文件的配置放置在META-INF/dubbo/internal目录下,这样才会重写生效,关于这个重写不生效的问题,自己琢磨了两三个小时,后面看源码的配置发现是在META-INF/dubbo/internal目录下,抱着试一试的态度,自己的目录也加了internal后,实现了默认命令的重写。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值