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

概述

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

	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,则使用以下代码:

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 filter中有关bean注入和配置文件读取的问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部