SSM框架整合:从入门到实战
在Java Web开发领域,SSM(Spring + SpringMVC + MyBatis)框架组合一直备受开发者青睐。它结合了Spring的强大依赖注入、SpringMVC的灵活请求处理以及MyBatis高效的ORM映射,为开发高效、可维护的Web应用提供了强大的支持。本文将详细介绍SSM框架的整合过程,从环境搭建到代码实现,带你一步步构建一个完整的SSM项目。
一、SSM框架简介
1. Spring
Spring是一个轻量级的Java开发框架,主要用于简化Java企业级应用的开发。它提供了依赖注入(DI)和面向切面编程(AOP)两大核心功能,帮助开发者实现代码的解耦和复用。
2. SpringMVC
SpringMVC是Spring框架的一个模块,用于构建Web应用。它基于MVC(Model-View-Controller)设计模式,将请求处理逻辑与视图展示分离,使得代码更加清晰易维护。
3. MyBatis
MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和参数的手工设置以及结果集的检索,通过简单的XML或注解配置即可实现强大的ORM功能。
二、开发环境搭建
1. JDK安装
确保已安装JDK 1.8或更高版本。可以通过以下命令检查JDK版本:
java -version
2. Maven安装
Maven是一个项目管理和构建工具,用于依赖管理和项目构建。下载并安装Maven,配置环境变量后,可以通过以下命令检查Maven版本:
mvn -v
3. IDE选择
推荐使用IntelliJ IDEA或Eclipse,它们都提供了对SSM框架的良好支持。
三、创建Maven项目
1. 创建项目
打开IDE,选择创建Maven项目,并输入项目信息(如groupId、artifactId等)。
2. 添加依赖
在pom.xml
文件中添加SSM框架及相关依赖。以下是基本的依赖配置:
<dependencies><!-- Spring --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.23</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>5.3.23</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.23</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>5.3.23</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.3.23</version></dependency><!-- SpringMVC --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!-- MyBatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.9</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.6</version></dependency><!-- 数据库 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.30</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.8</version></dependency><!-- 日志 --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.36</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.11</version></dependency>
</dependencies>
四、配置文件编写
1. 数据源配置(application.properties
)
在src/main/resources
目录下创建application.properties
文件,配置数据源信息:
# 数据库连接信息
spring.datasource.url=jdbc:mysql://localhost:3306/ssm_demo?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver# 数据源配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.initial-size=5
spring.datasource.min-idle=5
spring.datasource.max-active=20
2. Spring配置(applicationContext.xml
)
在src/main/resources
目录下创建applicationContext.xml
文件,配置Spring的核心功能:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsd"><!-- 扫描组件 --><context:component-scan base-package="com.example.ssm" /><!-- 数据源 --><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"><property name="url" value="${spring.datasource.url}" /><property name="username" value="${spring.datasource.username}" /><property name="password" value="${spring.datasource.password}" /><property name="driverClassName" value="${spring.datasource.driver-class-name}" /><property name="initialSize" value="${spring.datasource.initial-size}" /><property name="minIdle" value="${spring.datasource.min-idle}" /><property name="maxActive" value="${spring.datasource.max-active}" /></bean><!-- SqlSessionFactory --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="mapperLocations" value="classpath:mappers/*.xml" /></bean><!-- 事务管理器 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean><!-- 开启注解事务 --><tx:annotation-driven transaction-manager="transactionManager" />
</beans>
3. SpringMVC配置(dispatcher-servlet.xml
)
在src/main/webapp/WEB-INF
目录下创建dispatcher-servlet.xml
文件,配置SpringMVC的核心功能:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 扫描Controller --><context:component-scan base-package="com.example.ssm.controller" /><!-- 配置视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/views/" /><property name="suffix" value=".jsp" /></bean