2016-09-21 79 views
0

是什麼Spring XML配置:豆類:豆類VS豆

<beans:beans xmlns="http://www.springframework.org/schema/security" 
    xmlns:beans="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-4.2.xsd 
    http://www.springframework.org/schema/security 
    http://www.springframework.org/schema/security/spring-security-4.1.xsd"> 

<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:security="http://www.springframework.org/schema/security" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans.xsd 
        http://www.springframework.org/schema/security 
        http://www.springframework.org/schema/security/spring-security.xsd"> 

在前者的區別,安全配置爲

<http auto-config="true"> 

     <intercept-url pattern="/login" access="permitAll()" /> 
</http> 

而在後者將被配置爲

<security:http auto-config="true"> 

     <security:intercept-url pattern="/login" access="permitAll()" /> 
</security:http> 

我不確定這兩種模式格式之間的功能差異。也有人可以建議哪些是可喜的或哪些情況下哪些更可取?

+2

請參見[XML名稱空間](http://www.w3schools.com/xml/xml_namespaces.asp)。在你的第一個片段中,* security *命名空間很可能被用作基本命名空間。在後面的* beans *名稱空間被用作基名稱空間 –

+0

謝謝,這是一個有用的指針。 – Jake

回答

2

標籤beans:beansbeans標籤從beans命名空間和標籤beans指從默認命名空間beans標籤。

如果默認名稱空間是beans - 根本沒有差別。

3

至少有兩點不同

  • 第一就是語法:豆類是默認的命名空間或不

  • 第二可能會導致一些(佩塔爾·伊萬諾夫在他answer解釋這一點) (當您更新彈簧或彈簧安全性時):

帶版本號v的XSD :S沒有版本號

XSD在您第一次剪掉你使用http://www.springframework.org/schema/beans/spring-beans-4.2.xsdhttp://www.springframework.org/schema/security/spring-security-4.1.xsd - 在這裏你所使用的XSD的(這是確定的是春春的安全性有不同的數字)

一個修復版本在第二個剪輯中,您使用了http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/security/spring-security.xsd。在這種情況下,Spring將使用您使用的彈簧和彈簧安全罐支持的最新架構。