dubbo在spring中的配置这里就不多说了,各位看官都不是小白。
首先dubbo为我们提供的很多简单易用的标签,方便的实现了服务的暴露和调用
<?xml version="1.0" encoding="UTF-8"?>
先来简单介绍一下基于Spring可扩展Schema提供自定义配置支持
在很多情况下,我们需要为系统提供可配置化支持,简单的做法可以直接基于spring的标准Bean来配置,但配置较为复杂或者需要更多丰富控制的时候,会显得非常笨拙。一般的做法会用原生态的方式去解析定义好的xml文件,然后转化为配置对象,这种方式当然可以解决所有问题,但实现起来比较繁琐,特别是是在配置非常复杂的时候,解析工作是一个不得不考虑的负担。Spring提供了可扩展Schema的支持,这是一个不错的折中方案,完成一个自定义配置一般需要以下步骤:
|
完成解析工作,会用到NamespaceHandler和BeanDefinitionParser这两个概念。具体说来NamespaceHandler会根据schema和节点名找到某个BeanDefinitionParser,然后由BeanDefinitionParser完成具体的解析工作。因此需要分别完成NamespaceHandler和BeanDefinitionParser的实现类,Spring提供了默认实现类NamespaceHandlerSupport和AbstractSingleBeanDefinitionParser,简单的方式就是去继承这两个类。
DubboNamespaceHandler 实现了父类中的init方法,并定义了自己的DubboBeanDefinitionParser。最终将其转换成BeanDefinition,提供spring容器实例化使用