1. 程式人生 > >SSM到Spring Boot從零開發校園商鋪平臺---1、環境搭建及測試

SSM到Spring Boot從零開發校園商鋪平臺---1、環境搭建及測試

根據慕課網專案深入學習SSM和SpringBoot,練手中,將學習筆記做記錄,後期會繼續更新。
慕課網地址:SSM到Spring Boot-從零開發校園商鋪平臺-慕課網實戰,文末會附上免費視訊地址!

先上效果圖(此文講述中最後要完成的結果):
效果圖
專案圖

專案介紹

慕課網中關於專案有詳細的介紹,就不做過多的說明了。

專案結構及配置檔案說明

如題,專案初期採用SSM(Spring+SpringMVC+MyBatis)框架,按照專案載入過程逐一講解配置檔案:

pom.xml

專案使用Maven管理專案相關依賴,配置有Spring、mybatis、資料庫、junit等依賴;

web.xml

web專案的核心配置檔案,主要配置了SSM的前置控制器DispatcherServlet,主要負責流程的控制;

<servlet>
    <servlet-name>spring-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 配置springMVC需要載入的配置檔案 spring-dao.xml,spring-service.xml,spring-web.xml 
        Mybatis - > spring -> springmvc -->
<init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/spring-*.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>spring-dispatcher</servlet-name> <!-- 預設匹配所有的請求 -->
<url-pattern>/</url-pattern> </servlet-mapping>

spring-web.xml

主要配置SpringMVC:1)啟用註解驅動;2)靜態資源處理;3)配置檢視解析器;4)掃描web相關的bean;5、後續許可權攔截器的配置;

<!-- 兩個標準配置 -->
<!-- 1、啟用註解驅動-->  
<mvc:annotation-driven/>
<!-- 2、 可以正常訪問靜態檔案,springmvc靜態資源處理-->
<mvc:default-servlet-handler/>

<!-- 3.定義檢視解析器 -->
<bean id="viewResolver"  class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/html/"></property>
    <property name="suffix" value=".html"></property>
</bean>
<!-- 4.掃描web相關的bean -->
<context:component-scan base-package="com.tyron.o2o.web" />

spring-service.xml

業務相關配置:1)掃描service相關的bean;2)配置事務管理器;3)配置基於註解的宣告式事務;

<!--1、 掃描service包下所有使用註解的型別 -->
<context:component-scan base-package="com.tyron.o2o.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-dao.xml

配置整合mybatis過程:1)配置資料庫相關引數;2)配置資料庫連線池;3)配置SqlSessionFactory物件;4)配置掃描Dao介面包,並注入;

<!-- 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="10" />
    <!-- 關閉連線後不自動commit -->
    <property name="autoCommitOnClose" value="false" />
    <!-- 獲取連線超時時間 -->
    <property name="checkoutTimeout" value="10000" />
    <!-- 當獲取連線失敗重試次數 -->
    <property name="acquireRetryAttempts" value="2" />
</bean>

<!-- 3.配置SqlSessionFactory物件 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <!-- 注入資料庫連線池 -->
    <property name="dataSource" ref="dataSource" />
    <!-- 配置MyBaties全域性配置檔案:mybatis-config.xml -->
    <property name="configLocation" value="classpath:mybatis-config.xml" />
    <!-- 掃描entity包 使用別名 -->
    <property name="typeAliasesPackage" value="com.tyron.o2o.entity" />
    <!-- 掃描sql配置檔案:mapper需要的xml檔案 -->
    <property name="mapperLocations" value="classpath:mapper/*.xml" />
</bean>

<!-- 4.配置掃描Dao介面包,動態實現Dao介面,注入到spring容器中 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <!-- 注入sqlSessionFactory -->
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
    <!-- 給出需要掃描Dao介面包 -->
    <property name="basePackage" value="com.tyron.o2o.dao" />
</bean>

mybatis-config.xml

配置mybatis的屬性:1)駝峰命名轉換;2)列別名替換列名;3)自增主鍵

<settings>
    <!-- 開啟駝峰命名轉換:Table{create_time} -> Entity{createTime} -->
    <setting name="mapUnderscoreToCamelCase" value="true" />

    <!-- 使用列別名替換列名 預設:true -->
    <setting name="useColumnLabel" value="true" />

    <!-- 使用jdbc的getGeneratedKeys獲取資料庫自增主鍵值 -->
    <setting name="useGeneratedKeys" value="true" />
</settings>

jdbc.properties

設定資料庫相關引數,並將username和password設定為密文;

BaseTest.java

測試類的基類:

/**
 * 配置spring和junit整合,junit啟動時載入springIOC容器 spring-test,junit
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:spring/spring-dao.xml",
        "classpath:spring/spring-service.xml" })
public class BaseTest {
}

附上免費網盤地址:

TyronToCoder