1、<mvc:annotation-driven>自动注册标签。
2、<context:component-scan>包扫描标签。
3、<context:property-placeholder>标签加载静态属性文件。
4、<mvc:default-servlet-handler>标签处理静态资源访问问题。
1、<mvc:annotation-driven>自动注册标签
使用<mvc:annotation-driven>自动注册标签。在实际开发中,为了提高开发效率,使用最多的就是基于<mvc:annotation-driven>标签的配置,如下所示:
<!-- 开启SpringMVC注解模式(设置注解映射器、注解适配器) -->
<mvc:annotation-driven></mvc:annotation-driven>
<!-- 使用扫描配置,对某一个包下的所有类进行扫描,找出所有使用@Controller注解的Handler控制器类 -->
<context:component-scan base-package="com.pjb.mvc.controller"></context:component-scan>
详细说明,请浏览本博客的《SpringMVC使用mvc:annotation-driven自动注册标签》
2、<context:component-scan>包扫描标签
使用扫描配置,对某一个包下的所有类进行扫描,找出所有使用@Controller注解的Handler控制器类。
<context:component-scan base-package="com.pjb.mvc.controller"></context:component-scan>
对多个包进行扫描,使用逗号分隔:
<!-- 包扫描:entity,dao,service -->
<context:component-scan base-package="com.pjb.ssm.entity,com.pjb.ssm.dao,com.pjb.ssm.service"/>
另外<context:component-scan>还提供了两个子标签:
<context:include-filter>:包含。
<context:exclude-filter>:排除。
学习资料:《context:component-scan包扫描标签使用说明》
3、<context:property-placeholder>标签加载静态属性文件
<context:property-placeholder>标签配置,该配置用于读取工程中的静态属性文件,然后在其他配置中使用时,就可以采用“${属性名}”的方式获取该属性文件中的配置参数值。
【示例】使用<context:property-placeholder>标签加载静态属性文件。
(1)在resources目录下,编写db.properties数据库属性文件。
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/db_admin?useSSL=false&
jdbc.username=root
jdbc.password=123456
dbcp.pool.maxTotal=10
dbcp.pool.maxIdle=5
(2)在SpringMVC核心配置文件中,使用<context:property-placeholder>标签加载db.properties数据库属性文件,然后采用“${属性名}”的方式获取该属性文件中的配置参数值。
<!-- 加载用于数据库配置的属性文件 -->
<context:property-placeholder location="classpath:resources/db.properties"/>
<!-- dataSource数据源,使用DBCP数据库连接池 -->
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<!-- 数据库驱动名称 -->
<property name="driverClassName" value="${jdbc.driver}"/>
<!-- 数据库连接底座 -->
<property name="url" value="${jdbc.url}"/>
<!-- 登录数据库的用户名 -->
<property name="username" value="${jdbc.username}"/>
<!-- 登录数据库的密码 -->
<property name="password" value="${jdbc.password}"/>
<!-- 连接池的最大数据库连接数,设置默认值0表示无限 -->
<property name="maxTotal" value="${dbcp.pool.maxTotal:0}"/>
<!-- 最大空闲数,即数据库连接的最大空闲时间。当超过空闲时间时,数据库连接将被标记为不可用,然后被释放,设置默认值0表示无限 -->
<property name="maxIdle" value="${dbcp.pool.maxIdle:0}"/>
</bean>
4、<mvc:default-servlet-handler>标签处理静态资源访问问题
在SpringMVC的核心配置文件中使用<mvc:default-servlet-handler/>配置默认的Servlet处理器,该配置将在SpringMVC上下文中定义一个DefaultServletHttpRequestHandler,它会对进入DispatcherServlet前端控制器的请求进行筛查,如果发现是没有经过映射的请求,就将该请求交由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcherServlet前端控制器继续处理。此时就可以将请求中的静态资源与其他业务请求分开处理,从而正常地返回静态资源信息。
<!-- 静态资源默认servlet配置
(1)加入对静态资源的处理:js/css/img...
(2)允许使用"/"做整体映射
-->
<mvc:default-servlet-handler/>
或者使用<mvc:resource>标签:
<!-- 静态资源的解析,包括:js/css/img... -->
<mvc:resources location="/js/" mapping="/js/**"/>
<mvc:resources location="/css/" mapping="/css/**"/>
<mvc:resources location="/img/" mapping="/img/**"/>