学科分类
目录
SSM框架

编写配置文件

(1)在Eclipse中,创建一个名为chapter17的Web项目,将整合所需的JAR包添加到项目的lib目录中,并发布到类路径下。

(2)在chapter17项目下,创建一个名为config的源文件夹(Source Folder),在该文件夹中分别创建数据库常量配置文件db.properties、Spring配置文件applicationContext.xml,以及MyBatis的配置文件mybatis-config.xml。这三个配置文件的实现代码如文件1、文件2和文件3所示。

文件1 db.properties

 1    jdbc.driver=com.mysql.jdbc.Driver
 2    jdbc.url=jdbc:mysql://localhost:3306/mybatis
 3    jdbc.username=root
 4    jdbc.password=root
 5    jdbc.maxTotal=30
 6    jdbc.maxIdle=10
 7    jdbc.initialSize=5

文件2 applicationContext.xml

 1    <?xml version="1.0" encoding="UTF-8"?>
 2    <beans xmlns="http://www.springframework.org/schema/beans"
 3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 4        xmlns:aop="http://www.springframework.org/schema/aop"
 5        xmlns:tx="http://www.springframework.org/schema/tx" 
 6        xmlns:context="http://www.springframework.org/schema/context"
 7        xsi:schemaLocation="http://www.springframework.org/schema/beans 
 8        http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
 9        http://www.springframework.org/schema/tx 
 10        http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
 11        http://www.springframework.org/schema/context 
 12        http://www.springframework.org/schema/context/spring-context-4.3.xsd
 13        http://www.springframework.org/schema/aop 
 14        http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">
 15        <!-- 读取db.properties -->
 16        <context:property-placeholder location="classpath:db.properties"/>
 17        <!-- 配置数据源 -->
 18        <bean id="dataSource" 
 19                               class="org.apache.commons.dbcp2.BasicDataSource">
 20            <!--数据库驱动 -->
 21            <property name="driverClassName" value="${jdbc.driver}" />
 22            <!--连接数据库的url -->
 23            <property name="url" value="${jdbc.url}" />
 24            <!--连接数据库的用户名 -->
 25            <property name="username" value="${jdbc.username}" />
 26            <!--连接数据库的密码 -->
 27            <property name="password" value="${jdbc.password}" />
 28            <!--最大连接数 -->
 29            <property name="maxTotal" value="${jdbc.maxTotal}" />
 30            <!--最大空闲连接  -->
 31            <property name="maxIdle" value="${jdbc.maxIdle}" />
 32            <!--初始化连接数  -->
 33            <property name="initialSize" value="${jdbc.initialSize}" />
 34        </bean>
 35         <!-- 事务管理器,依赖于数据源 -->
 36        <bean id="transactionManager" class=
 37         "org.springframework.jdbc.datasource.DataSourceTransactionManager">
 38            <property name="dataSource" ref="dataSource" />
 39        </bean>    
 40        <!-- 开启事务注解 -->
 41        <tx:annotation-driven transaction-manager="transactionManager"/>
 42        <!-- 配置MyBatis工厂SqlSessionFactory -->
 43        <bean id="sqlSessionFactory" 
 44                               class="org.mybatis.spring.SqlSessionFactoryBean">
 45             <!--注入数据源 -->
 46             <property name="dataSource" ref="dataSource" />
 47             <!--指定核MyBatis心配置文件位置 -->
 48      <property name="configLocation" value="classpath:mybatis-config.xml" />
 49        </bean>
 50        <!-- 配置mapper扫描器 -->
 51        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
 52            <property name="basePackage" value="com.itheima.dao"/>
 53        </bean>
 54        <!-- 扫描Service --> 
 55        <context:component-scan base-package="com.itheima.service" />
 56    </beans>

在文件2中,首先定义了读取db.properties文件的配置和数据源配置,然后配置了事务管理器并开启了事务注解。接下来配置了用于整合MyBatis框架的MyBatis工厂信息,最后定义了mapper扫描器来扫描DAO层,以及扫描Service层的配置。

小提示:

在实际开发时,为了避免Spring配置文件中的信息过于臃肿,通常会将Spring配置文件中的信息按照不同的功能分散在多个配置文件中。例如可以将事务配置放置在名称为applicationContext-transaction.xml的文件中,将数据源等信息放置在名称为applicationContext-db.xml的文件中等。这样,在web.xml中配置加载Spring文件信息时,只需通过applicationContext-*.xml的方式即可自动加载全部配置文件。

文件3 mybatis-config.xml

 1    <?xml version="1.0" encoding="UTF-8" ?>
 2    <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 3    "http://mybatis.org/dtd/mybatis-3-config.dtd">
 4    <configuration>
 5        <!-- 别名定义 -->
 6        <typeAliases>
 7            <package name="com.itheima.po" />
 8        </typeAliases>
 9    </configuration>

由于在Spring中已经配置了数据源信息以及mapper接口文件扫描器,所以在MyBatis的配置文件中只需要根据POJO类路径进行别名配置即可。

(3)在config文件夹中,创建Spring MVC的配置文件springmvc-config.xml,编辑后如文件4所示。

文件4 springmvc-config.xml

 1    <beans xmlns="http://www.springframework.org/schema/beans"
 2      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 3      xmlns:mvc="http://www.springframework.org/schema/mvc"
 4      xmlns:context="http://www.springframework.org/schema/context"
 5      xmlns:tx="http://www.springframework.org/schema/tx"
 6      xsi:schemaLocation="http://www.springframework.org/schema/beans 
 7      http://www.springframework.org/schema/beans/spring-beans-4.3.xsd 
 8      http://www.springframework.org/schema/mvc 
 9      http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd 
 10      http://www.springframework.org/schema/context 
 11      http://www.springframework.org/schema/context/spring-context-4.3.xsd">
 12        <!-- 配置包扫描器,扫描@Controller注解的类 -->
 13        <context:component-scan base-package="com.itheima.controller" />
 14        <!-- 加载注解驱动 -->
 15        <mvc:annotation-driven />
 16        <!-- 配置视图解析器 -->
 17        <bean class=
 18        "org.springframework.web.servlet.view.InternalResourceViewResolver">
 19            <property name="prefix" value="/WEB-INF/jsp/" />
 20            <property name="suffix" value=".jsp" />
 21        </bean>
 22    </beans>

在文件4中,主要配置了用于扫描@Controller注解的包扫描器、注解驱动器以及视图解析器。

(4)在web.xml中,配置Spring的文件监听器、编码过滤器以及Spring MVC的前端控制器等信息,如文件5所示。

文件5 web.xml

 1    <?xml version="1.0" encoding="UTF-8"?>
 2    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 3          xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
 4          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
 5          http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
 6          id="WebApp_ID" version="3.1">
 7          <!-- 配置加载Spring文件的监听器-->
 8        <context-param>
 9            <param-name>contextConfigLocation</param-name>
 10            <param-value>classpath:applicationContext.xml</param-value>
 11        </context-param>
 12        <listener>
 13            <listener-class>
 14                 org.springframework.web.context.ContextLoaderListener
 15            </listener-class>
 16        </listener>
 17        <!-- 编码过滤器 -->
 18        <filter>
 19            <filter-name>encoding</filter-name>
 20            <filter-class>
 21                 org.springframework.web.filter.CharacterEncodingFilter
 22            </filter-class>
 23            <init-param>
 24                <param-name>encoding</param-name>
 25                <param-value>UTF-8</param-value>
 26            </init-param>
 27        </filter>
 28        <filter-mapping>
 29            <filter-name>encoding</filter-name>
 30            <url-pattern>*.action</url-pattern>
 31        </filter-mapping>
 32        <!-- 配置Spring MVC前端核心控制器 -->
 33        <servlet>
 34            <servlet-name>springmvc</servlet-name>
 35            <servlet-class>
 36                 org.springframework.web.servlet.DispatcherServlet
 37            </servlet-class>
 38            <init-param>
 39                <param-name>contextConfigLocation</param-name>
 40                <param-value>classpath:springmvc-config.xml</param-value>
 41            </init-param>
 42            <!-- 配置服务器启动后立即加载Spring MVC配置文件 -->
 43            <load-on-startup>1</load-on-startup>
 44        </servlet>
 45        <servlet-mapping>
 46            <servlet-name>springmvc</servlet-name>
 47            <!--/:拦截所有请求(除了jsp)-->
 48            <url-pattern>/</url-pattern>
 49        </servlet-mapping>
 50    </web-app>
点击此处
隐藏目录