如何在非 bean 对象中注入 dubbo service

本文介绍了一种在Spring框架中集成Dubbo服务的方法。首先,通过创建一个工具类实现ApplicationContextAware接口,使得非bean对象能够静态获取Spring管理的bean。接着,通过@Component注解创建一个组件,并使用@Reference注解注入Dubbo服务。最后,在非bean对象中调用该方法即可正常获取并使用Dubbo服务。

首先需要一个spring静态获取bean的工具类

@Component
public class SpringContextBeanUtil implements ApplicationContextAware {

  private static ApplicationContext context;

  @Override
  public void setApplicationContext(ApplicationContext context)
      throws BeansException {
    SpringContextBeanUtil.context = context;
  }

  public static <T> T getBean(Class<T> beanClass) {
    return context.getBean(beanClass);
  }

  public static String getMessage(String key) {
    return context.getMessage(key, null, Locale.getDefault());
  }
}

然后创建一个component 用reference注入dubbo的service

@Component
public class RedisComponent {

  @Reference(version = "1.0")
  private IRedisService redisService;

  public IRedisService getRedisService() {
    return redisService;
  }
}

最后在非bean对象中调用方法获取service
在这里插入图片描述
即可正常使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值