SSM项目spring配置文件详细步骤(分门别类、灵巧记忆)

spring-dao.xml文件

1.配置外部db.property文件:

<context:property-placeholder location="classpath:jdbc.properties"/>

  或者

<context:property-overdide location="classpath:db.property">

  区别在于:

property-override标签的作用是为xml配置文件中的bean的属性指定最终结果;而property-placeholder标签的作用是把xml配置文件中bean 的<property>标签的value值替换成正真的值。一般情况下都是可以通用的。

2.配置数据源DataSource,最常用的就是c3p0:

需要使用value="${jdbc.driverClass}"

这样的格式。

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.driverClass}"/>
        <property name="jdbcUrl" value="${jdbc.jdbcUrl}"/>
        <property name="user" value="${jdbc.user}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>

3.配置sqlSessionFactory,该bean是mybatis社区开发用于整合spring的bean:

 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--注入数据库连接池-->
        <property name="dataSource" ref="dataSource"/>
        <!--配置mybatis全局配置文件:mybatis-config.xml-->
        <property name="configLocation" value="classpath:mybatis-config.xml"/>
        <!--扫描entity包,使用别名,多个用;隔开-->
设置这个,那么在Mapper文件里面就可以直接写对应的类名 而不用写全路径名了  <property name="typeAliasesPackage" value="org.seckill.entity"/> <!--扫描sql配置文件:mapper需要的xml文件--> <property name="mapperLocations" value="classpath:mapper/*.xml"/> </bean>

  或者用p标签声明数据源:

 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" p:dataSource-ref="dataSource"/>

其中的mybatis的全局配置文件可以不配,使用默认的mybatis配置。另外,要使用xml配置mapper,需要配置mapperlocations,否则直接用注解配置mapper的话就不需要,仅仅需要第四部即可。

4.配置自动扫描dao接口包,动态实现dao接口,注入到spring容器。可以用完整的配置,如下:

 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!--注入SqlSessionFactory-->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        <!-- 给出需要扫描的Dao接口-->
        <property name="basePackage" value="org.seckill.dao"/>
    </bean>

  也可以使用简化版配置:

<mybatis:scan base-package="com.imqsl.dao"/>

  

spring-service.xml文件

该配置文件主要是配置一下JDBC事务以及扫描service包。具体如下:

1.扫描service包下所有使用注解的类型

<context:component-scan base-package="org.seckill.service"/>

2.配置事务管理器

 <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!--注入数据库连接池-->
        <property name="dataSource" ref="dataSource"/>
    </bean>

3.配置基于注解的声明式事务

<tx:annotation-driven transaction-manager="transactionManager"/>

spring-web.xml文件

1.开启springMVC注解,简化配置

主要提供了以下功能:

(1)自动注册DefautAnnotationHandlerMapping,AnnotationMethodHandlerAdapter
(2) 提供一系列:数据绑定,数字和日期的format @NumberFormat,@DataTimeFormat,
xml,json默认读写支持
<mvc:annotation-driven/>

2.静态资源默认servlet配置

主要提供了以下功能:

(1):加入对静态资源的处理:js,gif,png
(2):允许使用"/"做整体映射
 <mvc:default-servlet-handler/>

3.配置jsp 显示viewResolver

配置前缀后缀与jstl支持

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

4.自动扫描

<context:component-scan base-package="com.imqsl.controller"/>

此外,mybatis的配置文件(可配可不配,根据需求)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

    <settings>
        <!--使用jdbc的getGeneratedKeys 获取数据库的自增主键值-->
        <setting name="useGeneratedKeys" value="true"/>
        <!--使用别名替换列名 默认true
        select name as title from table
        -->
        <setting name="useColumnLabel" value="true"/>
        <!--开启驼峰命名转换-->
        <setting name="mapUnderscoreToCamelCase" value="true"/>

    </settings>



</configuration>

web.xml配置文件的一般格式:

<servlet>
 <!--定义springmvc的前端控制器-->
<servlet-name>seckill-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param>
<!--contextConfigLocation参数用来指定spring的配置文件--> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/spring-*.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>seckill-dispatcher</servlet-name> <!--默认匹配所有的请求--> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
原文地址:https://www.cnblogs.com/imqsl/p/7474608.html