1. 程式人生 > >springmvc的相關配置檔案

springmvc的相關配置檔案

最近自己搭了一個小的spring+springmvc+mybatis的秒殺相關的小工程,下面跟大家分享一下,用到的配置檔案是怎麼配置的,供參考。

我把相關的說明都放在註釋中,方便閱讀。

1.mybatis-config.xml

<configuration>
    <!--配置mybatis全域性的屬性-->
    <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>

2.jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/seckill?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
jdbc.username=root
jdbc.password=root

多說一句,如果啟動的時候c3p0資料庫連線池報錯,檢查一下jdbc.url有沒有配置上時區。

3.spring-dao.xml

<!--配置整合mybatis過程-->
    <!--1.配置資料庫相關引數 properties屬性:${url}-->
    <context:property-placeholder location="classpath:jdbc.properties"/>
    <!--2.資料庫連線池-->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <!--配置連線池屬性-->
        <property name="driverClass" value="${jdbc.driver}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="user" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>

        <!--配置c3p0連線池的私有屬性-->
        <property name="maxPoolSize" value="30"/>
        <property name="minPoolSize" value="2"/>
        <!--關閉連線後不自動commit-->
        <property name="autoCommitOnClose" value="false"/>
        <!--超過最大連線數後的等待時間-->
        <property name="checkoutTimeout" value="1000"/>
        <!--重試次數-->
        <property name="acquireRetryAttempts" value="2"/>

    </bean>
    <!--3.配置SqlSessionFactory物件-->
    <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包,使用別名-->
        <property name="typeAliasesPackage" value="com.meidl.entity"/>
        <!--掃描sql配置檔案:mapper需要的xml檔案-->
        <property name="mapperLocations" value="classpath:mapper/*.xml"/>
    </bean>

    <!--4.配置掃描DAO介面包,動態實現DAO介面,並注入到spring容器中-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!--注入sqlSessionFactory  sqlSessionFactoryBeanName後處理,防止提前sqlSessionFactory在DataSource前初始化-->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        <!--給出需要掃描DAO介面的包,並自動實現對應的實現類,注入到spring容器中-->
        <property name="basePackage" value="com.meidl.dao"/>
    </bean>

4.spring-service.xml

<!--掃描service包下所有使用註解的型別-->
    <context:component-scan base-package="com.meidl.service"/>

    <!--配置事務管理器-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!--注入資料庫的連線池-->
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!--配置基於註解的宣告式事務-->
    <!--預設使用註解來管理事務行為-->
    <tx:annotation-driven transaction-manager="transactionManager"/>

5.spring-web.xml

<!--配置springMVC-->
    <!--1.開啟springMVC註解模式-->
    <!--簡化配置:
    1)自動註冊DefaultAnnotationHandlerMapping,AnnotationMethodHandlerAdapter(預設註解對映和註解方法的適配)
    2)提供一些列功能:資料繫結,數字和日期的format @NumberFormat  @DateTimeFormat,xml,json預設讀寫支援-->
    <mvc:annotation-driven />

    <!--servlet-mapping 對映路徑:"/"-->
    <!--2.靜態資源預設servlet配置
        1)加入對靜態資源的處理:js,gif,png
        2)允許使用"/"做整體對映
    -->
    <mvc:default-servlet-handler/>

    <!--3.配置jsp 顯示ViewResolver-->
    <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.掃描web相關的bean-->
    <context:component-scan base-package="com.meidl.web"/>

把一些無關的程式碼段去掉,邏輯還是相對清晰的。