Spring Boot Mybatis 多模块(module)项目(SSM)的完整搭建教程

人工智能梦工厂 2019-06-19 ⋅ 93 阅读

引言

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-domainssm-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开发项目时取得成功!

欢迎访问我的博客获取更多技术资源和教程!

参考链接


全部评论: 0

    我有话说: