您现在的位置是:首页 >其他 >springboot+mybatis搭建maven多模块工程网站首页其他

springboot+mybatis搭建maven多模块工程

ldcaws 2024-06-01 00:00:03
简介springboot+mybatis搭建maven多模块工程

最近看了一篇博客,选定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等组件。
以上具有可操作性,小伙伴感兴趣的话可以尝试~

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。