引言
Spring Boot和Mybatis是开发Java Web项目的常用技术框架。本教程将带您从零开始搭建一个多模块的Spring Boot + Mybatis项目,使您能够快速入门和掌握该技术组合。
准备工作
在开始搭建项目之前,请确保您已经具备以下环境和工具:
- JDK 1.8 或以上版本
- Maven
- IDE(推荐使用IntelliJ IDEA)
创建父模块
首先,我们需要创建一个包含所有子模块的父模块。在命令行或IDE中执行以下命令:
mvn archetype:generate -DgroupId=com.example -DartifactId=ssm-project -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
该命令将创建一个名为 ssm-project
的父模块。接下来,我们将其导入IDE,并在 pom.xml
文件中添加所需的依赖项。
<dependencies>
<!-- Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<!-- MySQL驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 其他依赖项 -->
</dependencies>
在 src/main/java
目录下创建一个名为 com.example.ssmproject
的包,并在该包下创建一个名为 SsmProjectApplication
的类。这是项目的启动类。
@SpringBootApplication
public class SsmProjectApplication {
public static void main(String[] args) {
SpringApplication.run(SsmProjectApplication.class, args);
}
}
创建子模块
现在,我们将创建三个子模块:ssm-domain
,ssm-dao
,和 ssm-web
。
ssm-domain 模块
在父模块下创建一个新的模块 ssm-domain
。在 pom.xml
文件中添加以下依赖项:
<dependencies>
<!-- 其他依赖项 -->
</dependencies>
然后,我们在 src/main/java
目录下创建一个名为 com.example.ssmproject.domain
的包,并在该包下创建我们的领域对象类。例如,我们创建一个名为 User
的类:
public class User {
private Long id;
private String name;
private String email;
// 省略 getter 和 setter 方法
}
ssm-dao 模块
接下来,我们创建 ssm-dao
模块。在 pom.xml
中添加以下依赖项:
<dependencies>
<!-- ssm-domain 依赖 -->
<dependency>
<groupId>com.example</groupId>
<artifactId>ssm-domain</artifactId>
<version>${project.version}</version>
</dependency>
<!-- 其他依赖项 -->
<!-- Mybatis 自动生成代码插件 -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.4.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
在 src/main/java
目录下创建一个名为 com.example.ssmproject.dao
的包。然后,在该包下创建与数据库表对应的实体类和对应的 Mapper
接口。
例如,我们创建一个名为 UserMapper
的接口,并添加以下代码:
public interface UserMapper {
User getUserById(Long id);
void insertUser(User user);
void updateUser(User user);
void deleteUserById(Long id);
}
ssm-web 模块
最后,我们创建 ssm-web
模块。在 pom.xml
中添加以下依赖项:
<dependencies>
<!-- ssm-dao 依赖 -->
<dependency>
<groupId>com.example</groupId>
<artifactId>ssm-dao</artifactId>
<version>${project.version}</version>
</dependency>
<!-- 其他依赖项 -->
</dependencies>
在 src/main/java
目录下创建一个名为 com.example.ssmproject.controller
的包。然后,在该包下创建控制器类,用于处理客户端的请求。
例如,我们创建一个名为 UserController
的类,并添加以下代码:
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserMapper userMapper;
@GetMapping("/{id}")
public User getUserById(@PathVariable("id") Long id) {
return userMapper.getUserById(id);
}
@PostMapping
public void insertUser(@RequestBody User user) {
userMapper.insertUser(user);
}
// 其他方法省略
}
配置文件
在我们的父模块和各子模块中都需要添加一些配置文件。
父模块配置
在父模块的 application.properties
文件中添加以下配置:
spring.profiles.active=@spring.profiles.active@
ssm-domain 模块配置
在 ssm-domain
模块的 src/main/resources
目录下创建 application.properties
文件,并添加以下配置:
# 空文件
ssm-dao 模块配置
在 ssm-dao
模块的 src/main/resources
目录下创建 application.properties
文件,并添加以下配置:
spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
mybatis.type-aliases-package=com.example.ssmproject.domain
mybatis.mapper-locations=classpath:mapper/*.xml
在 src/main/resources
目录下创建 generatorConfig.xml
文件,并添加以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<context id="DB2Tables" targetRuntime="MyBatis3Simple">
<jdbcConnection driverClass="${spring.datasource.driver-class-name}"
connectionURL="${spring.datasource.url}"
userId="${spring.datasource.username}"
password="${spring.datasource.password}">
</jdbcConnection>
<javaModelGenerator targetPackage="com.example.ssmproject.domain"
targetProject="src/main/java"/>
<sqlMapGenerator targetPackage="mapper"
targetProject="src/main/resources"/>
<javaClientGenerator targetPackage="com.example.ssmproject.dao"
targetProject="src/main/java"
type="XMLMAPPER"/>
<table tableName="user" domainObjectName="User"/>
</context>
</generatorConfiguration>
ssm-web 模块配置
在 ssm-web
模块的 src/main/resources
目录下的 application.properties
文件中添加以下配置:
# 空文件
测试与运行
我们完成了项目的搭建和配置,现在可以进行测试和运行了。
在IDE中打开 SsmProjectApplication
类,并运行 main
方法。Spring Boot会自动启动并运行项目。
打开浏览器,访问 http://localhost:8080/users/1
(假设我们的服务端口是8080),您应该能够看到一个JSON格式的用户对象。
通过其他HTTP方法(如POST、PUT、DELETE)创建、修改和删除用户。
总结
通过本教程,我们成功搭建了一个多模块的Spring Boot + Mybatis项目,实现了基本的CRUD操作。这是一个非常常用的开发框架和技术组合,对于任何Java Web开发者来说都是必备的。
您可以根据自己的需求和业务逻辑,增加其他模块和功能。祝您在使用Spring Boot和Mybatis开发项目时取得成功!
欢迎访问我的博客获取更多技术资源和教程!
参考链接
本文来自极简博客,作者:人工智能梦工厂,转载请注明原文链接:Spring Boot Mybatis 多模块(module)项目(SSM)的完整搭建教程