通过配置xml或者注解的方式来使用dubbo的filter

最近在研究dubbo的权限验证功能,这里要用到dubbo的filter,于是在网上查询有关资料,但各种版本的都有,遇到很多坑,

比如通过注解@Activate的方式来实现激活条件和时机(下面这段表示如果方法是服务提供者,就会先激活filter,等执行完filter以后才执行后面被调用的服务方法)

@Activate(group = "provider")
public class TestDubboFilter implements Filter {

	@Override
	public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
		System.out.println("TestDubboFilter1111111");
		Result result = null;
		result = invoker.invoke(invocation);
		return result;
	}

}

或者通过配置xml的方式

<dubbo:provider filter="testDubboFilter"></dubbo:provider>

其实这2中方式只要配一种就行了,不需要2种都配,有些文章不知道哪里抄来的,竟然同时用了注解和xml配置的方式,把我带进了坑里。

最后,我总结一下dubbo用filter的几个关键步骤

1.写一个实现类继承Filter接口

2.在这个类上面写上注解@Activate(参数可以根据业务来自己定义)

3.在src/main/resources/METE-INF/dubbo/目录下添加一个文件,文件名是com.alibaba.dubbo.rpc.Filter,这个是固定写法,dubbo框架会到这个目录里查找这个文件的,这个文件里把刚才那个实现类的包名加类名写进去,比如

testDubboFilter=com.test.filter.TestDubboFilter

4.在启动类里面别忘记扫描这个类的目录@EnableDubbo(scanBasePackages = "com.test.filter")

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章