首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

慕課網 SSM 框架實戰筆記(一):Maven 創建 Web 項目與完整依賴配置

     編輯:Java 綜合教學

慕課網 SSM 框架實戰筆記(一):Maven 創建 Web 項目與完整依賴配置

跟隨慕課網「Java 高併發秒殺 API」課程,從零手搭 SSM(Spring + Spring MVC + MyBatis)項目。本文記錄項目初始化全過程,含 Maven 命令、目錄結構、pom.xml 全量依賴、IDE 導入坑點。

1. Maven 創建 Web 項目

mvn archetype:generate \
  -DgroupId=org.seckill \
  -DartifactId=seckill \
  -DarchetypeArtifactId=maven-archetype-webapp \
  -DarchetypeCatalog=local
  • archetype:generate:固定命令
  • groupId:組織標識(包名前綴)
  • artifactId:項目名稱
  • archetypeArtifactId:maven-archetype-webapp 生成 Web 項目結構
  • archetypeCatalog=local:使用本地原型目錄,加快生成

2. 目錄結構補全

Maven-webapp 預設缺少 Java 源碼與測試目錄,需手動創建:

src/main/java        # 主代碼
src/main/resources   # 配置文件
src/test/java        # 測試代碼
src/test/resources   # 測試資源

最終結構:

seckill
├── src
│   ├── main
│   │   ├── java
│   │   ├── resources
│   │   └── webapp
│   │       └── WEB-INF
│   │           └── web.xml
│   └── test
│       ├── java
│       └── resources
└── pom.xml

3. web.xml 升級 Servlet 3.0

Maven 生成的 web.xml 默認 2.3 版,不支援 EL 表達式與註解配置,必須替換為 3.0:

<web-app xmlns="https://java.sun.com/xml/ns/javaee"
         xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://java.sun.com/xml/ns/javaee
         https://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0" metadata-complete="true">
    <!-- 配置內容 -->
</web-app>

4. pom.xml 完整依賴(核心版本:Spring 4.1.7、MyBatis 3.3.0、MySQL 5.1.35)

<dependencies>
    <!-- 測試 -->
    <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency>

    <!-- 日誌:SLF4J + Logback -->
    <dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.12</version></dependency>
    <dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>1.1.1</version></dependency>
    <dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.1.1</version></dependency>

    <!-- 數據庫 -->
    <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.35</version><scope>runtime</scope></dependency>
    <dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version></dependency>

    <!-- MyBatis -->
    <dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.3.0</version></dependency>
    <dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.2.3</version></dependency>

    <!-- Servlet/Web -->
    <dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1.1.2</version></dependency>
    <dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency>
    <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.5.4</version></dependency>
    <dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.0.1</version><scope>provided</scope></dependency>

    <!-- Spring 核心 -->
    <dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.1.7.RELEASE</version></dependency>
    <dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>4.1.7.RELEASE</version></dependency>
    <dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.1.7.RELEASE</version></dependency>

    <!-- Spring DAO/JDBC/TX -->
    <dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>4.1.7.RELEASE</version></dependency>
    <dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>4.1.7.RELEASE</version></dependency>

    <!-- Spring Web/MVC -->
    <dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>4.1.7.RELEASE</version></dependency>
    <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.1.7.RELEASE</version></dependency>

    <!-- Spring Test -->
    <dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>4.1.7.RELEASE</version></dependency>

    <!-- Redis & 序列化 -->
    <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.7.3</version></dependency>
    <dependency><groupId>com.dyuproject.protostuff</groupId><artifactId>protostuff-core</artifactId><version>1.0.8</version></dependency>
    <dependency><groupId>com.dyuproject.protostuff</groupId><artifactId>protostuff-runtime</artifactId><version>1.0.8</version></dependency>

    <!-- 工具 -->
    <dependency><groupId>commons-collections</groupId><artifactId>commons-collections</artifactId><version>3.2.1</version></dependency>
</dependencies>

5. IDEA 導入與常見坑

  • Project vs Module:IDEA 的 Project ≈ Eclipse Workspace,Module ≈ Eclipse Project。多項目共存建議建 Empty Project 再導入各 Module。
  • Maven 設置:File → Settings → Build Tools → Maven,指定本地 settings.xml 與 Maven home,勾選「Import Maven projects automatically」。
  • 依賴下載失敗:檢查鏡像源(阿里云)、網絡代理、本地倉庫權限。
  • 刪除 Module:右鍵 Module → Remove,或關閉 Project 後物理刪除目錄。

依賴配置完成後,下一步將進入 DAO 層設計:MyBatis 映射文件、實體類、Mapper 接口與 Spring 整合配置。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved