引言
在Java开发中,合理地整合各种开源框架是提高开发效率、降低开发成本的重要方式之一。本篇博客将介绍如何使用Spring、SpringMVC和MyBatis这三个开源框架进行整合,并给出一个完整的案例以便读者更好地理解整合过程。
准备工作
在开始整合之前,我们需要先准备好以下环境和工具:
- JDK 8及以上版本
- Maven 3.x
- Eclipse或IntelliJ IDEA等集成开发环境
同时,需要创建一个新的Maven项目来进行整合。
整合步骤
第一步:添加依赖
在pom.xml
文件中添加以下依赖:
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.8</version>
</dependency>
<!-- SpringMVC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.8</version>
</dependency>
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.7</version>
</dependency>
<!-- 数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
<!-- Servlet API -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<!-- JSP API -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
<scope>provided</scope>
</dependency>
<!-- JSTL -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
第二步:配置Spring和SpringMVC
在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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.example.controller" />
<!-- 数据库配置 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mydatabase?useSSL=false&serverTimezone=UTC" />
<property name="username" value="root" />
<property name="password" value="password" />
</bean>
<!-- MyBatis配置 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mapperLocations" value="classpath:mapper/*.xml" />
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg ref="sqlSessionFactory" />
</bean>
<!-- SpringMVC配置 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
<bean id="handlerMapping" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
<bean id="handlerAdapter" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" />
<mvc:annotation-driven />
</beans>
第三步:配置MyBatis
在src/main/resources
目录下创建mybatis-config.xml
文件,用来配置MyBatis相关的配置。示例配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<settings>
<setting name="logImpl" value="STDOUT_LOGGING" />
</settings>
<typeAliases>
<package name="com.example.model" />
</typeAliases>
<mappers>
<mapper resource="mapper/ExampleMapper.xml" />
</mappers>
</configuration>
第四步:编写模型和Mapper
在src/main/java/com/example/model
目录下创建一个Example.java
文件,用来定义一个示例模型类。示例代码如下:
package com.example.model;
public class Example {
private Integer id;
private String name;
// 省略getter和setter
@Override
public String toString() {
return "Example{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
在src/main/java/com/example/mapper
目录下创建一个ExampleMapper.xml
文件,用来编写对应Example
模型类的Mapper。示例代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<mapper namespace="com.example.mapper.ExampleMapper">
<resultMap id="BaseResultMap" type="com.example.model.Example">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="name" property="name" jdbcType="VARCHAR" />
</resultMap>
<sql id="Base_Column_List">
id, name
</sql>
<select id="selectByExample" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List" />
FROM example
</select>
</mapper>
第五步:编写Controller
在src/main/java/com/example/controller
目录下创建一个ExampleController.java
文件,用来定义一个示例控制器。示例代码如下:
package com.example.controller;
import com.example.model.Example;
import com.example.mapper.ExampleMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/example")
public class ExampleController {
@Autowired
private ExampleMapper exampleMapper;
@GetMapping("/")
public List<Example> getExamples() {
return exampleMapper.selectByExample(null);
}
}
第六步:编写视图
在src/main/webapp/WEB-INF/views
目录下创建一个example.jsp
文件,用来展示示例控制器返回的数据。示例代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Example</title>
</head>
<body>
<h1>示例数据:</h1>
<ul>
<c:forEach var="example" items="${examples}">
<li>${example}</li>
</c:forEach>
</ul>
</body>
</html>
第七步:部署和运行项目
完成以上步骤后,可以执行以下命令编译和打包项目:
$ mvn clean package
打包成功后,将生成的target
目录下的.war
文件部署到任意支持Java Web应用的容器上,比如Tomcat等。
启动容器后,访问http://localhost:8080/example/
,即可看到示例数据的展示页面。
总结
本文介绍了如何使用Spring、SpringMVC和MyBatis进行整合的详细步骤,并给出了一个包含完整代码的示例案例。希望读者能通过本文掌握整合的基本原理和操作方法,能够在实际开发中更好地应用这些框架。整合不仅可以提高开发效率,还能帮助我们构建稳定、可维护的应用程序。
本文来自极简博客,作者:时光倒流,转载请注明原文链接:Spring SpringMVC MyBatis整合案例