我是靠谱客的博主 朴实钻石,这篇文章主要介绍dubbo filter中有关bean注入和配置文件读取的问题,现在分享给大家,希望可以做个参考。

今天在写dubbo的filter时候,需要注入bean和读取配置文件,然后理所当然的就像springboot其他地方的写法一样,直接用了@Resource和@Value注解。但是本地调试的时候,发现报错,注入的bean和读取的配置变量全部为null,很是不解,于是就上网查了以下资料。
首先,dubbo的拦截器这些组件是由dubbo自己管理的,并不是直接由spring管理的,因此spring的那些注入注解在dubbo里统统不能用。
如果想用可以采取以下代码:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
private Environment environment; public void setEnvironment(Environment environment){ this.environment=environment; } @Override public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException { String headerTopic = environment.getProperty("spring.kafka.header-topic"); Result result = invoker.invoke(invocation); return result; }

这样就可以读取到配置文件了。如果想要注入bean,则使用以下代码:

复制代码
1
2
3
4
5
private KafkaTemplate<String, String> headKafkaTemplate; public void setHeadKafkaTemplate(KafkaTemplate<String, String> headKafkaTemplate){ this.headKafkaTemplate = headKafkaTemplate; }

dubbo组件实例化后,setter方法会被dubbo调起,然后在ApplicationContext中去查找对应的bean。而且在查找的过程中是优先按照名字去匹配,然后才是type,所以尽量把setter方法名字写成要注入的bean的名字。
以上参考博客为:
Dubbo初始化源码解析
dubbo读取配置文件
dubbo注入bean其他方法
java中的filter注入bean

最后

以上就是朴实钻石最近收集整理的关于dubbo filter中有关bean注入和配置文件读取的问题的全部内容,更多相关dubbo内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部