浏览 2743 次
锁定老帖子 主题:spring的个性化扩展
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-12-21
1、首先告诉spring我们扩展了,采用META-INF目录下存在二个文件来告诉他,一个是spring.schemas,一个是spring.handlers。spring.shcmeas告诉spring在什么位置可以找到schema文件,其中key就是在spring配置文件中的命名空间的值。spring.handlers告诉spring扩展handler才用得那个标签类。在spring的jar中本身就存在这个文件,他会合并自己扩展的这个文件。 比如,serviceMix在spring.schemas中作如下配置 http\://servicemix.apache.org/config/1.0=servicemix.xsd 在spring.handlers中如下配置: http\://servicemix.apache.org/config/1.0=org.apache.xbean.spring.context.v2.XBeanNamespaceHandler 2、这样通过配置,可以读取到相应的属性处理器 3、在spring的配置文件中配置个性的配置属性 <beans xmlns:sm="http://servicemix.apache.org/config/1.0" xmlns:audit="http://servicemix.apache.org/audit/1.0"> <!-- the JBI container --> <sm:container id="jbi" rootDir="./data/smx" MBeanServer="#jmxServer" installationDirPath="./hotdeploy" monitorDeploymentDirectory="false" monitorInterval="1" transactionManager="#transactionManager" createJmxConnector="false" depends-on="jndi"> 这样,在执行的时候读取到个性配置,首先会从1种读取配置信息的位置,然后通过2进行处理,非常简洁的处理思路。 在上面servermix中使用了xbean-spring.jar中的一个扩展机制,配置spring.handlers中配置了一个XBeanNamespaceHandler,在运行的过程中会读取META-INF\services\org\apache\xbean\spring\http\servicemix.apache.org\config\1.0(根据URI配置的路径信息)配置文件,配置了相应的处理类 转换规则如下: 1、以http打头的: "META-INF/services/org/apache/xbean/spring/").append(uri.replaceAll("://", "/").replace(':', '/').replace(' ', '_') 2、以java:打头的 截取掉java:剩余的内容 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |