1. 程式人生 > 其它 >Spring Web MVC 簡單框架的搭建

Spring Web MVC 簡單框架的搭建

按:記錄一下初學的 spring web mvc 簡單框架的搭建過程。
0. 專案總體結構
專案由maven工具管理

demo-system
|-- demo-system-module-mvc
|   |-- src
|   |   |-- main
|   |   |   |-- java
|   |   |   |-- resources
|   |   |   |   |-- sqlMapper
|   |   |   |   |   |-- *.xml
|   |-- pom.xml
|-- demo-system-module-web
|   |-- src
|   |   |-- main
|   |   |   |-- java
|   |   |   |-- logs
|   |   |   |-- resources
|   |   |   |   |-- config
|   |   |   |   |   |-- jdbcConfig.properties
|   |   |   |   |-- applicationContext.xml
|   |   |   |   |-- applicationContext-db.xml
|   |   |   |-- webapp
|   |   |   |   |-- WEB-INF
|   |   |   |   |   |-- web.xml
|   |-- pom.xml
|-- pom.xml

涉及到的技術主要包括:spring web mvc; mybatis; druid(Oracle); logback。JDK版本為1.8.0_191。

  1. 專案配置的POM檔案
    1.1 demo-system.pom.xml
<!--spring相關-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.3.8</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>5.3.8</version>
</dependency>
<!--資料庫連線相關-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.4</version>
</dependency>
<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc6</artifactId>
    <version>11.2.0.4.0</version>
</dependency>
<!--Mybatis相關-->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.6</version>
</dependency>
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>2.0.6</version>
</dependency>
<!--日誌記錄相關-->
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.3</version>
</dependency>

1.2 demo-system-module-web.pom.xml

<!--json對映相關-->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.12.1</version>
</dependency>
  1. web配置檔案
    demo-system-module-web.src.main.webapp.WEB-INF.web.xml
<!--SpringMVCDispathcerServlet前端控制器-->
<servlet>
    <servlet-name>springMvcDispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <!--指定springMVC的配置檔案路徑-->
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:/applicationContext*.xml</param-value>
    </init-param>
    <!--在Web應用啟動時立即載入,數字越小,越先載入-->
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>springMvcDispatcher</servlet-name>
    <!--監聽當前域的指定型別的請求-->
    <url-pattern>*.action</url-pattern>
    <url-pattern>.do</url-pattern>
</servlet-mapping>
<!--Druid連線池,啟用Web監控統計功能-->
<servlet>
    <servlet-name>druidStatView</servlet-name>
    <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
    <init-param>
        <param-name>loginUsername</param-name>
        <param-value>admin</param-value>
    </init-param>
    <init-param>
        <param-name>loginPassword</param-name>
        <param-value>admin</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>druidStatView</servlet-name>
    <url-pattern>/druid/*</url-pattern>
</servlet-mapping>
  1. jdbc配置檔案
    demo-system-module-web.src.main.resources.config.jdbcConfig.properties
jdbc.url=jdbc:oracle:thin:@192.168.0.1:3306:root
jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.username=root
jdbc.password=root
# 初始化時建立物理連線的個數
jdbc.initialSize=1
# 最小連線數
jdbc.minIdle=1
# 允許最大連線數,超過後在佇列中等候,最大的等待請求數由 maximun-new-connections決定
jdbc.maxActive=60
# 最大等待時間
jdbc.maxWait=5000

# SQL執行超過一定時間則記錄為慢SQL
jdbc.dialect=oracle
jdbc.slowSqlMillis=3000
# 慢SQL統計日誌輸出
jdbc.logSlowSwql=false
# 合併SQL統計
jdbc.mergeSql=false
# 檢測需要關閉的空閒連線的間隔時間
jdbc.timeBetweenEvictionRunsMillis=120000
  1. 資料庫Druid配置
    demo-system-module-web.src.main.resources.applicationContext-db.xml
<!--配置Druid連線池-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
    <property name="driverClassName" value="${jdbc.driver}"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>

    <property name="initialSize" value="${jdbc.initialSize}"/>
    <property name="minIdle" value="${jdbc.minIdle}"/>
    <property name="maxActive" value="${jdbc.maxActive}"/>
    <property name="maxWait" value="${jdbc.maxWait}"/>
</bean>
<!--配置資料庫會話連線-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="mapperLocations" value="classpath*:sqlMapper/**/*.xml"/>
</bean>
<!--配置Mapper對映-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    <property name="basePackage" value="com.*"/>
</bean>
  1. 根配置檔案
    demo-system-module-web.src.main.resources.applicationContext.xml
<!--載入配置檔案-->
<context:property-placeholder location="classpath*:/config/jdbcConfig.properties"/>
<!--配置annotation型別的處理器對映器和處理器介面卡-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/"/> <!--配置頁面路徑-->
    <property name="suffix" value=".jsp"/> <!--檔案以value值結尾-->
</bean>

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

<mvc:annotation-driven/>

結語
這裡只是記錄了關鍵的具體配置,其餘的內容可以輕鬆地通過其他網路文章獲得,其中各個依賴的版本在順利執行前不建議更改,有小概率會發生一些奇怪的錯誤。