2020年11月10日星期二

Spring 配置最好不要配置 xsd 版本号!

作者:横云断岭
https://blog.csdn.net/hengyunabc/article/details/22295749

为什么dubbo启动没有问题?

这篇blog源于一个疑问:

我们公司使了阿里的dubbo,挂掉有好几个月了,为什么我们的应用启动没有问题?我们的应用的Spring配置文件里有类似的配置:

<?

首先来看下

通常情况下,namespace对应的URI是一个存放XSD的地址,尽管规范没有这么要求。

如果没有提供schemaLocation,那么Spring的

<?

schemaLocation提供了一个

xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xs 目录,可以看到下面有

spring-context-2.5.xsdspring-context-3.0.xsdspring-context-3.1.xsdspring-context-3.2.xsd

很明显,可以想到Spring是把XSD文件放到本地了,再在spring.schemas里做了一个映射,优先从本地里加载XSD文件。

并且Spring很贴心,把旧版本的XSD文件也全放了。这样可以防止升级了Spring版本,而配置文件里用的还是旧版本的XSD文件,然后断网了,应用启动不了。

我们还可以看到,在没有配置版本号时,用的就是当前版本的XSD文件:

如何写一个自己的spring 

可以参考Spring的文档,实际上是相当简单的。只要实现自己的NamespaceHandler,再配置一下spring.handlers和spring.schemas就可以了。

其它的一些东东

防止XSD加载不成功的一个思路

总结:

为什么不要在Spring的配置里,配置上XSD的版本号?

因为如果没有配置版本号,取的就是当前jar里的XSD文件,减少了各种风险。
而且这样约定大于配置的方式很优雅。

近期热文推荐:

1.Java 15 正式发布, 14 个新特性,刷新你的认知!!

2.终于靠开源项目弄到 IntelliJ IDEA 激活码了,真香!

3.我用 Java 8 写了一段逻辑,同事直呼看不懂,你试试看。。

4.吊打 Tomcat ,Undertow 性能很炸!!

5.《Java开发手册(嵩山版)》最新发布,速速下载!

觉得不错,别忘了随手点赞+转发哦!

原文转载:http://www.shaoqun.com/a/489614.html

环球市场:https://www.ikjzd.com/w/1762

google correlate:https://www.ikjzd.com/w/1887

小马哥:https://www.ikjzd.com/w/1655


作者:横云断岭https://blog.csdn.net/hengyunabc/article/details/22295749为什么dubbo启动没有问题?这篇blog源于一个疑问:我们公司使了阿里的dubbo,挂掉有好几个月了,为什么我们的应用启动没有问题?我们的应用的Spring配置文件里有类似的配置:<?首先来看下通常情况下,namespace对应的URI是一个存放XSD的地址,尽管
prezi:https://www.ikjzd.com/w/1751
亚马逊全球开店:https://www.ikjzd.com/w/1299
水帘洞漂流中秋节有什么活动?2020龙门水帘洞漂流中秋节免:http://tour.shaoqun.com/a/68788.html
深圳盐田区有什么免费旅游景点?:http://tour.shaoqun.com/a/808.html
技巧1—2019亚马逊PPC广告投放攻略:https://www.ikjzd.com/home/18112

没有评论:

发表评论