一、前言

  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的区别自行查阅文档)

<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.dasheng.shop</groupId>
<artifactId>shop-biz</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.dasheng.shop</groupId>
<artifactId>shop-dao</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.dasheng.shop</groupId>
<artifactId>shop-web</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
</dependencyManagement>

    在shop-web层中的pom文件中添加shop-biz依赖

<dependencies>
<dependency>
<groupId>com.dasheng.shop</groupId>
<artifactId>shop-biz</artifactId>
</dependency>
</dependencies>

    在shop-biz层中的pom文件中添加shop-dao依赖

<dependencies>
<dependency>
<groupId>com.dasheng.shop</groupId>
<artifactId>shop-dao</artifactId>
</dependency>
</dependencies>

  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方法启动项目,发现如下报错

***************************
APPLICATION FAILED TO START
*************************** Description: Field demoService in com.dasheng.biz.web.controller.Controller required a bean of type 'com.dasheng.biz.service.DemoService' that could not be found. The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true) Action: Consider defining a bean of type 'com.dasheng.biz.service.DemoService' in your configuration. Process finished with exit code 1

  原因是找不到DemoService类,此时需要在ShopWebApplication入口类中增加包扫描,设置@SpringBootApplication注解中的scanBasePackages值为com.dasheng.shop,最终如下所示

     

  shop-web的pom加入

<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
<version>5.1.27</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>

applicatio.yml配置 新建applicatio.yml配置文件:https://blog.csdn.net/weixin_44848573/article/details/106445457

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
@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

最新文章

  1. iOS平台UDID方案比较
  2. [LeetCode] Product of Array Except Self 除本身之外的数组之积
  3. OpenCV2:图像的几何变换,平移、镜像、缩放、旋转(1)
  4. java 学习写架构必会几大技术点
  5. java核心知识点学习----重点学习线程池ThreadPool
  6. ABAP Enhancement:第一部分
  7. POJ 1734
  8. 拥抱ARM妹子 序章!ARM妹子~~ 哥我来啦!
  9. QT-利用C++仿制windown自带的记事本程序V1.0
  10. 觉得VR头显太笨重?轻便的VR“神器”来了
  11. 关于Android attrs 自定义属性的说明
  12. [ExtJS5学习笔记]第二十九节 sencha ext js 5.1.0中动态更换皮肤主题
  13. ReactJs和React Native的那些事
  14. 如何在Ubuntu 18.04上安装Pip
  15. (办公)重新选择一个开发工具Eclipse
  16. Tmux 日常快捷键 及配置
  17. 数据库之mysql篇(5)—— 【转载】mysql练习题
  18. 线程封装组件(BackgroundWorker)和线程(Thread)
  19. freeswitch的拨号规则配置
  20. 并发和多线程-八面玲珑的synchronized

热门文章

  1. 基于python的pixiv爬虫
  2. 纯净Ubuntu16安装CUDA(9.1)和cuDNN
  3. Windows下的程序及热键监视神器——Spy++
  4. 从零入门 Serverless | 教你使用 IDE/Maven 快速部署 Serverless 应用
  5. VS Code环境配置
  6. DL4J实战之五:矩阵操作基本功
  7. javascript-jquery选择器
  8. .net Xml加密解密操作
  9. OO第四次博客作业--第四单元总结及课程总结
  10. 21.6.23 test