为了账号安全,请及时绑定邮箱和手机立即绑定

Spring配置XML模式:有无版本?

Spring配置XML模式:有无版本?

UYOU 2019-09-21 13:38:27
我是Spring的新手。令我感到困惑的是,有时我看到带有版本化模式的XML配置文件,而有时却看到非版本化模式的XML配置文件。例如,有时我看到类似<?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:context="http://www.springframework.org/schema/context"       xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans-4.0.xsd        http://www.springframework.org/schema/context        http://www.springframework.org/schema/context/spring-context-4.0.xsd">    <context:annotation-config/>    <context:component-scan base-package="base.package"/></beans>有时像这样:<?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:context="http://www.springframework.org/schema/context"       xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans.xsd        http://www.springframework.org/schema/context        http://www.springframework.org/schema/context/spring-context.xsd">    <context:annotation-config/>    <context:component-scan base-package="base.package"/></beans>请注意,两个示例中的spring-beans和spring-context模式是不同的。所以,我的问题是,您将使用哪种样式,为什么?特别是,将来版本更新的架构会不可用,并且当Spring更新架构时,非版本化的架构会与当前应用程序保持兼容吗?另一个问题是,在哪里可以找到版本化的弹簧模式列表?非常感谢!
查看完整描述

3 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

建议使用“无版本” XSD,因为它们已映射到您在应用程序中使用的框架的当前版本。


应用程序和工具切勿尝试从Web上获取那些XSD,因为这些模式已包含在JAR中。如果这样做,通常意味着您的应用正在尝试使用比您使用的框架版本更新的XSD,或者您的IDE /工具配置不正确。


据我所知,只有一种情况要使用特定的XSD版本:当尝试使用在较新版本中已过时/修改的XML属性时。至少可以这样说,这通常不会发生。


无论如何,Spring团队应该删除Spring 5.0的版本化架构,请参阅SPR-13499。


有关“无版本==当前版本”的更多信息:


这些XSD文件包含在Spring JAR中-在构建期间,“无版本” XSD被映射到最新版本(请参阅实际建立该链接的spring.schemas文件)。另外,可用的在线文件以相同的方式构建(请参阅gradle构建中的“ schemaZip”目标)。



查看完整回答
反对 回复 2019-09-21
?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

我不确定它们是否是指导,但是我个人倾向于引用非版本化的模式-通常,如果您正在使用Spring项目的较新版本(Spring核心,集成等),则可以请参考未版本控制的架构。

未版本化的架构指向项目的最新版本,因此,如果您使用的是Spring的真正旧版本(例如,针对当前发布的4.0版本为2.5版),则它们可能不是正确的语法,在这种情况下可能会更好指向版本化架构。

这里要说明的另一点是,如果可能的话,最好完全避免使用xml,最好使用基于Java的@Configuration样式来配置Spring Bean。


查看完整回答
反对 回复 2019-09-21
  • 3 回答
  • 0 关注
  • 472 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信