利用注册bean过滤接口获取注册bean和bean的属性动态注册或者引用dubbo服务
启动类配置@ComponentScan(excludeFilters = {@ComponentScan.Filter(type = FilterType.CUSTOM, classes = {BeanFilter.class})})
1 | less复制代码@ComponentScan(excludeFilters = {@ComponentScan.Filter(type = FilterType.CUSTOM, classes = {BeanFilter.class})}) |
实现TypeFilter接口,默认取实现的第一个接口(可做修改),如果Service注解没有设置value值,spring注册的bean是实现类的首字母小写,获取bean的时候注意
1 | ini复制代码public class BeanFilter implements TypeFilter{ |
注册dubbo服务方法,dubbo注册参参数group、version等可从配置文件中读取
1 | ini复制代码private void providerConfig(String ClassName, String beanName) { |
引用dubbo服务方法包含dubbo动态调用。group、version等也可从配置文件中读取
1 | ini复制代码private void referenceConfig(String className,String beanName){ |
dubbo动态调用,参数可从数据库中获取,记得加缓存,每次从数据库中获取会影响性能
1 | ini复制代码public class DubboHandler implements InvocationHandler { |
如果只是注册服务获取引用服务使用其中一个方法就行了。
第一次写文章,有不对的地方或者写得不好的地方大家多多指点,共同进步。。。。。
本文转载自: 掘金