我最开始是通过sharding-spwhere这个分库中间件知道,在做中间件的时候,最好是使用这种spring-namespace的方式进行配置。之后,在比较流行了一些java中间件中都会发现spring-namespace的影子,比如dubbo中的xml配置文件
<dubbo:application name="demo-provider"/>
<dubbo:registry address="multicast://224.5.6.7:1234" />
<!-- use dubbo protocol to export service on port 20880 -->
<dubbo:protocol name="dubbo"/>
这些都是使用spring-namespace实现的。
通常在做框架研发的时候,经常会遇到的问题就是需要框架的使用者进行一系列的配置。如果框架是纯原生的,不依赖于spring的(通常做的框架都应该有一个不依赖其他框架的版本的,也就是core版本),那么配置一般是放在配置文件中。但是对于中间件来说,配置的时候我们最好是在configBean(配置类)中进行。
比如下面的配置,自定义命令空间的配置,这样的配置要好过<bean></bean>这种方式。因为对于复杂的配置来说,通过namespace的方式配置之后,我们能够得到更加清晰的配置感受。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:user="http://www.wuxueyou.cn/schema/user"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.wuxueyou.cn/schema/user http://www.wuxueyou.cn/schema/user.xsd">
<user:self-user id="user2" userId="12" name="aaa"/>
<bean id="user1" class="com.xueyou.User">
<property name="userId" value="33"/>
<property name="name" value="xiaoming"/>
</bean>
</beans>
同样配置一个user的对象,通过第一种方式,比第二种方式更加的直接。下一篇文章,我会详细介绍具体如何使用spring-namespace进行自定义命名。
本文来源0day__,由javajgs_com转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处