記錄一次經典的 SSM(Struts2 + Spring + MyBatis)整合專案搭建過程,作為個人學習備份。採用 Maven 管理依賴,適用於維護老專案或理解傳統框架整合原理。
| 框架 | 版本 |
|---|---|
| Struts2 | 2.3.24.1 |
| Spring | 3.0.5.RELEASE |
| MyBatis | 3.2.2 |
| MyBatis-Spring | 1.2.1 |
| MySQL Connector | 5.1.37 |
<project xmlns="https://maven.apache.org/POM/4.0.0" ...>
<modelVersion>4.0.0</modelVersion>
<groupId>MavenDemo</groupId>
<artifactId>MavenDemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<struts.version>2.3.24.1</struts.version>
<spring.version>3.0.5.RELEASE</spring.version>
<mybatis.version>3.2.2</mybatis.version>
<mysql.version>5.1.37</mysql.version>
<slf4j.version>1.7.5</slf4j.version>
</properties>
<dependencies>
<!-- Struts2 核心與插件 -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>${struts.version}</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>${struts.version}</version>
</dependency>
<!-- Spring 全家桶 -->
<dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency>
<dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency>
<dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>${spring.version}</version></dependency>
<!-- 其餘 spring-aop, spring-tx, spring-context 等省略 -->
<!-- MyBatis 整合 -->
<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency>
<dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.2.1</version></dependency>
<!-- 資料庫與日誌 -->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency>
<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${slf4j.version}</version></dependency>
</dependencies>
<build>
<sourceDirectory>${basedir}/src</sourceDirectory>
<outputDirectory>${basedir}/WebRoot/WEB-INF/classes</outputDirectory>
<resources>
<resource>
<directory>${basedir}/src</directory>
<excludes><exclude>**/*.java</exclude></excludes>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webappDirectory>${basedir}/WebRoot</webappDirectory>
<warSourceDirectory>${basedir}/WebRoot</warSourceDirectory>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration><source>1.6</source><target>1.6</target></configuration>
</plugin>
</plugins>
</build>
</project>
<properties> 統一版本號,便於升級維護。struts2-spring-plugin 讓 Action 由 Spring 容器管理。<resources> 區塊確保 XML、properties 等配置檔複製到輸出目錄。專案跑通基礎流程後,計劃整合 Shiro 進行權限控制,並補全單元測試與攔截器配置。