javaDEMO
本网站记录了最全的各种 JavaDEMO ,保证下载,复制就是可用的,包括基础的, 集合的, spring 的, Mybatis 的等等各种,助力你从菜鸟到大牛,记得收藏哦~~
https://www.javastudy.cloud
dubbo 通过 Context 上下文获取 Bean
平常我们在 spring 的 bean 中使用 dubbo 的接口时,会使用 @Reference
注解, 但是如果在非 springBean 中,如某个工具类中使用 dubbo 的 bean 就不能使用这个注解了.
获取步骤如下:
1.先从 springContext 中获取到 ReferenceAnnotationBeanPostProcessor
这个 bean
2. 从 ReferenceAnnotationBeanPostProcessor
Bean 中拿到 dubbo 的 ReferenceBean
3. 转成我们想要的接口
获取代码如下:
public static <T> T getDubboBean(Class<T> requiredType){
ReferenceAnnotationBeanPostProcessor dubboContext = applicationContext.getBean(ReferenceAnnotationBeanPostProcessor.class);
Collection<ReferenceBean<?>> referenceBeans = dubboContext.getReferenceBeans();
for (ReferenceBean<?> referenceBean : referenceBeans) {
Class<?> objectType = referenceBean.getObjectType();
if(objectType == requiredType){
return (T)referenceBean.getObject();
}
}
return null;
}
DEMO 总评
dubbo 的一个很偏的知识点, 平时用不到,但用的时候又找不到,希望对大家能有所帮助
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于