<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" 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.3.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd"> <!-- 定义组件扫描器,指定需要扫描的包 --> <context:component-scan base-package="cesium.controller" /> <!-- 配置了对@Controller标签的支持 注解驱动 3.2之后spring-mvc新特征--> <mvc:annotation-driven/> <!-- 定义视图解析器:简化controller类编写的视图路径 --> <bean id="viewResolver" class= "org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 设置前缀 --> <property name="prefix" value="/WEB-INF/jsp/" /> <!-- 设置后缀 --> <property name="suffix" value=".jsp" /> </bean> <!-- 配置拦截器 <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**" /> <bean class="edu.xhu.interceptor.LoginInterceptor" /> </mvc:interceptor> </mvc:interceptors> --> <!-- 配置不拦截的资源 mvc3.0以后用这种更高效--> <mvc:default-servlet-handler /> </beans>
1 xmlns=xxx
为元素定义默认的命名空间可以让我们省去在所有的子元素中使用前缀的工作。
即:无前缀的子元素使用此命名空间
2 xmlns:xxxxx=xxxx
当命名空间被定义在元素的开始标签中时,所有带有相同前缀的子元素都会与同一个命名空间相关联。
即:同前缀的子元素,namespace一致
=============================================================================
1 xmlns=:默认命名空间
根据此xml的用处,默认引入的标签集合(namespace)就不同,例如maven的pom。就是"http://maven.apache.org/POM/4.0.0",而spring相关的一般是"http://www.springframework.org/schema/beans"
2mlns:xsi=:
引入schema实例(理解为一个java接口,所有要使用schema约束,都必须引入,约定了要使用schema,必须给的参数,例如xsi:schemaLocation),所以xml都是一样的?(因为都是用同一个schema处理解析对象)。
3xsi:schemaLocation=:
为xsi(schema实例,)引入xsd约束,必须到这一步,才真正引入了约束文档
4xmlns:context=
引入context命名空间。从这一条之后的例子,一般是用于引入可用的子标签了(非约束,而是被约束对象),例如使用的<context:x>标签;而每加一个子标签,都要在xsi:schemaLocation内引入对应的xsd约束,