springboot+mybatis搭建maven多模块工程

本文介绍了如何在Idea中使用SpringInitializr创建一个基于SpringBoot和Mybatis的多模块项目。项目结构包括web、biz、mapper、model和common层,详细阐述了从创建父工程、子模块到配置依赖,以及web层调用biz层和mapper层的步骤。最后,讨论了多模块工程的维护优势和微服务化的可能性。
摘要由CSDN通过智能技术生成

最近看了一篇博客,选定springboot+mybatis作为框架,在idea中搭建maven的多模块工程,下面也再温习一下,并将搭建过程分享出来,供小伙伴们参考。

1、开发工具及系统环境

  • Idea 2020.3
  • 系统环境为win10
  • mysql5.7+
  • springboot2.7+

2、项目目录结构

  • web层:请求处理层
  • biz层:业务逻辑层
  • mapper层:数据持久层
  • model层:实体层
  • common层:通用处理层

2.1、创建父工程

在idea中选择菜单File->New->Project…
在这里插入图片描述
选择Spring Initializr,Initializr默认选择Default,点击Next
填写相关信息,点击Next
在这里插入图片描述
不需要选择直接点Next
在这里插入图片描述
填写相关信息,点击Finish创建项目
在这里插入图片描述
最终得到的项目目录结构如下
在这里插入图片描述
删除无用的.mvn目录、src目录、mvnw及mvnw.cmd文件,最终只留.iml和pom.xml
在这里插入图片描述

2.2、创建子模块

选择项目根目录,右键呼出菜单,选择New -> Module
在这里插入图片描述
选择Maven,点击Next
在这里插入图片描述
填写ArifactId,点击Next
在这里插入图片描述
点击Finish即可。同理添加biz、mapper、model、common子模块,最终得到项目目录结构如下图
在这里插入图片描述

2.3、运行工程

在web子模块中创建com.***.web包,并添加入口类WebApplication.java

@SpringBootApplication
public class WebApplication {

    public static void main(String[] args) {
        SpringApplication.run(WebApplication.class, args);
    }
}

添加controller目录并新建一个controller,添加test方法测试接口是否可以正常访问

@RestController
@RequestMapping("demo")
public class DemoController {

    @GetMapping("test")
    public String test() {
        return "Hello World!";
    }
}

运行WebApplication类中的main方法启动项目,默认端口为8080,访问http://localhost:8080/demo/test得到如下效果
在这里插入图片描述

2.4、配置模块间的依赖关系

各个模块之间的依赖关系:web依赖biz,biz依赖mapper,mapper依赖model,model依赖common。
父pom文件中声明所有子模块依赖

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.ldc</groupId>
                <artifactId>maven_web</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>com.ldc</groupId>
                <artifactId>maven_biz</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>com.ldc</groupId>
                <artifactId>maven_mapper</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>com.ldc</groupId>
                <artifactId>maven_model</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>com.ldc</groupId>
                <artifactId>maven_common</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

在web子模块中的pom文件中添加biz依赖,其他同理

		<dependency>
            <groupId>com.ldc</groupId>
            <artifactId>maven_biz</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>

2.5、web层调用biz层

biz层代码

public interface DemoService {
    String test();
}
@Service
public class DemoServiceImpl implements DemoService {

    @Override
    public String test() {
        return "test";
    }
}
@RestController
@RequestMapping("demo")
public class DemoController {

    @Autowired
    private DemoService demoService;

    @GetMapping("test")
    public String test() {
//        return "Hello World!";
        return demoService.test();
    }
}

再次运行BetaWebApplication类中的main方法启动项目,发现如下报错
在这里插入图片描述
原因是找不到DemoService类,此时需要在WebApplication入口类中增加包扫描,设置@SpringBootApplication注解中的scanBasePackages值为com.***,最终如下所示

@SpringBootApplication(scanBasePackages = "com.***")
public class WebApplication {

    public static void main(String[] args) {
        SpringApplication.run(WebApplication.class, args);
    }
}

设置完后重新运行main方法,项目正常启动,访问http://localhost:8080/demo/test得到如下效果
在这里插入图片描述
biz层调用mapper层同理,此时需要注意在WebApplication入口类中增加dao层包扫描,添加@MapperScan注解并设置其值为com.***.mapper,最终如下所示

@SpringBootApplication(scanBasePackages = "com.***")
@MapperScan("com.***.mapper")
public class WebApplication {

    public static void main(String[] args) {
        SpringApplication.run(WebApplication.class, args);
    }
}

需添加依赖,否则MapperScan注解找不到

		<dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>

至此,一个简单的SpringBoot+Mybatis多模块项目已经搭建完毕,我们也通过启动项目调用接口验证其正确性。

3、小结

一个层次分明的多模块工程结构不仅方便维护,而且有利于后续微服务化。还可以继续集成logback、redis、kafka等组件。
以上具有可操作性,小伙伴感兴趣的话可以尝试~

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个比较宏观的问题,需要分步骤进行讲解。我会尽可能地详细地回答你的问题。 首先,我需要确认一下你对这些技术的了解程度。你是否已经熟悉了这些技术的基本概念和用法? 如果你已经了解了这些技术,那么我们可以开始讲解如何搭建微服务项目。以下是搭建微服务项目的主要步骤: 1. 创建父工程Maven中创建一个父工程,用于管理子模块的依赖关系。我们可以在父工程中定义一些公共的依赖和插件,以便在子模块中进行复用。 2. 创建子模块 在父工程下创建多个子模块,每个子模块代表一个微服务。每个子模块可以有自己的依赖和配置文件,也可以有自己的数据库。 3. 配置Spring Cloud Alibaba 在每个子模块中引入Spring Cloud Alibaba的依赖,并进行相应的配置Spring Cloud Alibaba提供了一系列的组件,包括服务注册与发现、配置管理、消息队列、分布式事务等,我们可以根据实际需要选择使用哪些组件。 4. 集成MyBatis 在每个子模块中引入MyBatis的依赖,并进行相应的配置MyBatis是一个轻量级的ORM框架,可以方便地进行数据库操作。 5. 编写业务代码 在每个子模块中编写业务代码,包括控制器、服务、DAO等。在编写业务代码时,我们可以通过注解进行调用其他微服务的接口,实现微服务之间的调用。 6. 部署微服务 将每个子模块打包成jar包,并分别部署到不同的服务器上。在每个服务器上启动对应的微服务,微服务之间就可以通过网络进行通信了。 以上是搭建微服务项目的主要步骤。当然,实际上还有很多细节需要注意,比如如何处理微服务之间的异常、如何进行负载均衡等等。但总的来说,搭建微服务项目的核心思想就是将一个大型的应用拆分成多个小型的服务,每个服务都有自己的职责,通过网络进行通信,最终共同完成整个应用的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值