一个配置 Spring Bean 的 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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd ">
</beans>
看不懂这一堆东西,是会吃了没文化的的亏的。首先理解为什么需要这些东西,这些代码的最终目的是那个 xsd后缀的 schema文件,这个文件可以对相应的标签进行格式验证并且可以用于标签内容自动补全。例如:spring-beans-3.1.xsd 就可以对beans标签起作用。
那么,怎么得到schema文件呢,首先是这个:
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-3.1.xsd
xmlns:xsi是xsi标准命名空间,用于配合xsi:schemaLocation用于指定自定义命名空间的Schema文件,而xsi:schemaLocation中可以理解为两个http指定一个schema文件,例如,上面的代码中前一个http是标签beans的全名,而后面一个http则是schema位置。
那么,我如果要在beans标签下使用context标签怎么配置呢,首先是声明标签与全名:
xmlns:context="http://www.springframework.org/schema/context"
然后用全名指定schema文件位置,xsi:Location中添加:
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
就可以了。
另外,一些用于简写的标签只需要声明即可,例如:
xmlns:p="http://www.springframework.org/schema/p"