一、前言
1、开发工具及系统环境
*
– IDE:IntelliJ IDEA 2020.2.2
– 系统环境:Windows
2、项目目录结构
*
– biz层:业务逻辑层
– dao层:数据持久层
– web层:请求处理层
二、搭建步骤
1、创建父工程
选择Spring Initializr,Initializr默认选择Default,点击Next
点击Next
这一步不需要选择直接Next
点击Finish创建项目
最终得到的项目目录结构如下,删除无用的.mvn目录、src目录、mvnw及mvnw.cmd文件,最终只留.gitignore和pom.xml
2、创建子模块
选择项目根目录shop右键呼出菜单,选择New -> Module
选择Maven,点击Next
填写ArifactId,Module name增加横杠提升可读性,点击Finish
同理添加shop-dao、shop-web子模块,最终得到项目目录结构如下图
3、运行项目
在shop-web层创建com.dasheng.shop.web包(注意:这是多层目录结构并非单个目录名,com >> dasheng >> shop>> web)并添加入口类ShopWebApplication.java
@SpringBootApplication
public class ShopWebApplition {
public static void main(String[] args) {
SpringApplication.run(ShopWebApplition.class, args);
}
}
在com.dasheng.shop.web包中新建controller文件目录并新建一个controller,添加test方法测试接口是否可以正常访问
@RestController
@RequestMapping("demo")
public class Controller {
@GetMapping("test")
public String test() {
return "Hello World!";
}
}
运行ShopWebApplication类中的main方法启动项目,默认端口为8080
访问http://localhost:8080/demo/test得到如下效果
以上虽然项目能正常启动,但是模块间的依赖关系却还未添加,下面继续完善。
4、 配置模块间的依赖关系
各个子模块的依赖关系:
biz层依赖dao层,
web层依赖biz层
父pom文件中声明所有子模块依赖(dependencyManagement及dependencies的区别自行查阅文档)
com.dasheng.shop shop-biz 0.0.1-SNAPSHOT com.dasheng.shop shop-dao 0.0.1-SNAPSHOT com.dasheng.shop shop-web 0.0.1-SNAPSHOT
在shop-web层中的pom文件中添加shop-biz依赖
com.dasheng.shop
shop-biz
在shop-biz层中的pom文件中添加shop-dao依赖
com.dasheng.shop
shop-dao
5. web层调用biz层接口测试
在shop-biz层创建com.dasheng.shop.biz包,添加service目录并在其中创建DemoService接口类
public interface DemoService {
String test();
}
@Service("DemoService")
public class DemoServiceImpl implements DemoService {
@Override
public String test() {
return null;
}
}
com.dasheng.biz.web.controllerController通过@Autowired注解注入DemoService,修改DemoController的test方法使之调用DemoService的test方法,最终如下所示:
@Autowired
private DemoService demoService;
@GetMapping("test2")
public String test2() {
return demoService.test();
}
再次运行ShopWebApplication类中的main方法启动项目,发现如下报错
csharp;gutter:true;</p>
<hr />
<p>APPLICATION FAILED TO START</p>
<hr />
<p>Description:</p>
<p>Field demoService in com.dasheng.biz.web.controller.Controller required a bean of type 'com.dasheng.biz.service.DemoService' that could not be found.</p>
<p>The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)</p>
<p>Action:</p>
<p>Consider defining a bean of type 'com.dasheng.biz.service.DemoService' in your configuration.</p>
<p>Process finished with exit code 1</p>
<pre><code>
原因是找不到DemoService类,此时需要在ShopWebApplication入口类中增加包扫描,设置@SpringBootApplication注解中的scanBasePackages值为com.dasheng.shop,最终如下所示
![Spring Boot + MyBatis 多模块项目搭建教程](https://johngo-pic.oss-cn-beijing.aliyuncs.com/articles/20230605/2151015-20211121213450201-1666173579.png)
shop-web的pom加入
</code></pre>
<p>org.mybatis.spring.boot
mybatis-spring-boot-starter
1.1.1</p>
<pre><code> mysql
mysql-connector-java
runtime
5.1.27
org.mybatis
mybatis-spring
1.3.2
</code></pre>
<pre><code>
![Spring Boot + MyBatis 多模块项目搭建教程](https://johngo-pic.oss-cn-beijing.aliyuncs.com/articles/20230605/2151015-20211121213542959-629115408.png)
applicatio.yml配置 新建applicatio.yml配置文件:https://blog.csdn.net/weixin_44848573/article/details/106445457
</code></pre>
<p>spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
username: root
password: root
url: jdbc:mysql://localhost:3306/test01?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true</p>
<pre><code>
</code></pre>
<p>@SpringBootApplication(scanBasePackages = "com.dasheng.biz")
@MapperScan("com.dasheng.biz.dao")
public class ShopWebApplition {
public static void main(String[] args) {
SpringApplication.run(ShopWebApplition.class, args);
}
}
完成!!
业务层直接调用(@Autowired )dao层(Mybatis)就完事了这不在叙述了,因为没有到入实体,项目放到gitee了,有需要的同学可以下载哦!
https://gitee.com/diaoyulin/shop.git
Original: https://www.cnblogs.com/diaoyulin/p/15586139.html
Author: yl_diao
Title: Spring Boot + MyBatis 多模块项目搭建教程
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/576312/
转载文章受原作者版权保护。转载请注明原作者出处!