场景:
<beans:beans xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/security"
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">
最近碰到很多人不理解,为什么spring的配置中要用<beans:bean id="" class="" />
<beans:bean>和<bean>标签有什么区别
解疑:
spring中有默认的命名空间,比如
<beans:beans xmlns="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.xsd">
默认命名空间是beans,使用<bean>标签即可,spring会默认是beans命名空间下。
又比如
<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.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security.xsd">
默认命名空间是security,使用<http>标签即可,spring默认security命名空间下。这时定义bean,就需要<beans:bean>标签
小结:
应该来说<beans:bean>和<bean>标签没有任何区别,只是应用场景不一样而已,前者应用在默认命名空间不是beans的xml中,后者应用在默认命名空间为beans的xml中。