dubbo--自定义注解spring扫描
来源:互联网 发布:linux命令more less 编辑:程序博客网 时间:2024/05/01 01:10
模块:dubbo-config-spring
包:com.alibaba.dubbo.config.spring
类:AnnotationBean
源码:
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { if (annotationPackage == null || annotationPackage.length() == 0) { return; } if (beanFactory instanceof BeanDefinitionRegistry) { try { // init scanner Class<?> scannerClass = ReflectUtils.forName("org.springframework.context.annotation.ClassPathBeanDefinitionScanner"); Object scanner = scannerClass.getConstructor(new Class<?>[] {BeanDefinitionRegistry.class, boolean.class}).newInstance(new Object[] {(BeanDefinitionRegistry) beanFactory, true}); // add filter Class<?> filterClass = ReflectUtils.forName("org.springframework.core.type.filter.AnnotationTypeFilter"); Object filter = filterClass.getConstructor(Class.class).newInstance(Service.class); Method addIncludeFilter = scannerClass.getMethod("addIncludeFilter", ReflectUtils.forName("org.springframework.core.type.filter.TypeFilter")); addIncludeFilter.invoke(scanner, filter); // scan packages String[] packages = Constants.COMMA_SPLIT_PATTERN.split(annotationPackage); Method scan = scannerClass.getMethod("scan", new Class<?>[]{String[].class}); scan.invoke(scanner, new Object[] {packages}); } catch (Throwable e) { // spring 2.0 } } }
dubbo是直接调用spring默认的扫描类,我们可以自定义扫描类,重新doScan方法,对每个BeanDefinitionHolder重新定义(利用FactoryBean的特性)
0 0
- dubbo--自定义注解spring扫描
- spring 自定义注解的注册与扫描
- spring扫描自定义注解并进行操作
- Spring自定义注解扫描与操作
- spring注解扫描配置
- spring扫描注解
- spring注解扫描
- spring扫描注解
- spring注解扫描
- Spring自定义Annotation扫描
- spring 注解扫描bean配置
- Spring注解与扫描,NoUniqueBeanDefinitionException
- spring mvc 扫描与注解
- spring 自定义注解annotation+aspect 环绕通知配置对dubbo的consumer监控报警
- 自定义test之dubbo注解的实现
- spring 自定义注解
- spring自定义注解
- Spring自定义注解
- Android UI的绘制流程
- 使用D3制作统计图表、线性图表、水平柱状图表、饼图 -- (二)面积图表
- cs231n学习笔记-CNN-目标检测、定位、分割
- poj 3468(线段树区间修改合并)
- 理解java动态代理
- dubbo--自定义注解spring扫描
- huffman编码与解码
- 理解tomcat之搭建简易http服务器
- Ubuntu16.04 root用户登录没有声音的解决方法
- Spring 测试数据库连接
- MySQL入门
- golang 第三方包
- 在 Linux 下搭建 Git 服务器
- centos系统时间与硬件时间相差12小时