Filter
1、实现Filter接口
2、自定义的在默认的过滤器实现类之后执行
3、添加@Activate注解,会自动激活(与默认过滤器一样?)
4、也可以不添加注解,自己在xml里配置,即自定义过滤器
<dubbo:service filter="aa,cc,vv" />为某个服务设置过滤器
<dubbo:provider filter="qq,ww,ee" />为所有提供者设置过滤器
5、提供端自定义过滤器的 key是service.filter
消费端自定义过滤器的key是 reference.filter
6、写法 -往url里面添加map的key/value
<dubbo:service ..>
<dubbo:parameter key="service.filter" value="dd,ff"/>
</dubbo:service>
7、实现原理
在dubbo中,对于服务的调用,最终是将其抽象成一个Invoker的调用,而在抽象的过程中,Dubbo会获取配置文件中指定的所有实现了Filter
接口的类,然后根据为其指定的key名称,将其组织成一条链。具体的代码在ProtocolFilterWrapper
中