当前位置: 首页 > news >正文

Maven 搭建spring boot多模块项目

Maven 搭建spring boot多模块项目


备注:所有项目都在idea中创建

1.idea创建maven项目

  • 1-1: 删除src,target目录,只保留pom.xml

  • 1-2: 根目录pom.xml可被子模块继承,因此项目只是demo,未考虑太多性能问题,所以将诸多依赖

    都写在根级`pom.xml`,子模块只需继承就可以使用。
  • 1-3: 根级pom.xml文件在附录1

  • 1-4: 依赖模块 mybatis spring-boot相关模块

2.创建子模块(module)

  • 2-1: file > new > module 输入 model

  • 2-2: file > new > module 输入 dao

  • 2-3: file > new > module 输入 service

  • 2-4: file > new > module 输入 webapi

3.修改子模块pom.xml配置

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>parent</artifactId> <groupId>com.luyh.projectv1</groupId> <version>1.0-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>projectv1-model</artifactId> </project>

注意:<font color="red"><relativePath>../pom.xml</relativePath></font>此段必须加上,用来继承父模块


至此,项目的基础结构搭建完毕了,接下来可以来撸代码了,哦哦稍等,我先介绍下各个子module的工作职责吧

4.子模块在项目中担任的'工作职责'

  • model 此模块存放着所有的实体类

  • dao 此模块存放着数据交互的具体实现,供service调用

  • service 此模块存放业务代码实现,供API层调用

  • webapi 此模块也可以不出现在项目中,为了写demo故将webapi层放进来

5.model层实体类编写

  • 建立包名 com.luyh.projectv1.model

  • 建实体类 Member.java 具体代码请clone我的git,git地址在最下方

6.dao层数据库操作层

  • 建立com.luyh.projectv1.dao.config,该包内只有2个让spring boot自动加载配置的配置java类

  • 建立MemberMapper.java 具体内容看代码

  • 在resources/mybatis 下建立MemberMapper.xml

  • 建立IMember.java

  • 建立Member.java 实现Imember接口

  • 建立resources/application.properties文件用于配置数据库连接

7. service 编写业务逻辑

  • 建立 com.luyh.projectv1.service 包

  • 建立IMemberService.java接口

  • 建立MemberService.java实现类

  • MemberService.java 类中自动注入DaoMember 并调用其方法获取数据

8. webapi 编写webapi获取json数据

  • 建立Application.java 启动应用

  • 建立 com.luyh.projectv1.webapi.controller.MemberController.java 写个rest风格Controller

  • 启动

9.sql文件 请自行导入mysql数据 sql文件


这里是项目地址,点击下载

附录1


<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.luyh.projectv1</groupId> <artifactId>parent</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.3.3.RELEASE</version> </parent> <modules> <module>model</module> <module>dao</module> <module>service</module> <module>webapi</module> </modules> <!--申明依赖关系--> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.2</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.8</version> </dependency> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-jdbc</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies> <!--设置maven仓库--> <repositories> <repository> <id>spring-releases</id> <url>https://repo.spring.io/libs-release</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>spring-releases</id> <url>https://repo.spring.io/libs-release</url> </pluginRepository> </pluginRepositories> </project>

 

 

相关文章:

  • 职场小说推荐
  • 福禄克重磅推出模块化压力控制器6270A
  • IE和Firefox(火狐)在JavaScript方面的不兼容及统一方法总结
  • 违章查询免费api接口代码
  • 名词解释 内存镜像
  • 整顿互联网医院, 更好的完善医疗服务!
  • 关机前清除电脑垃圾
  • 库存分配
  • 【comparator, comparable】小总结
  • 用C#改写Head First Design Patterns--Command 命令(原创)
  • 海康威视复赛题 ---- 碰撞避免方案(1)
  • C# 中的常用正则表达式总结
  • Node 即学即用 笔记 思维导图
  • 程序员的十层楼:大家都来测测你的技术层级
  • Snail—Hibernate之自写固定组件
  • JavaScript设计模式与开发实践系列之策略模式
  • Java教程_软件开发基础
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • Shadow DOM 内部构造及如何构建独立组件
  • Yeoman_Bower_Grunt
  • 阿里云前端周刊 - 第 26 期
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 检测对象或数组
  • 深入浅出webpack学习(1)--核心概念
  • 探索 JS 中的模块化
  • 为视图添加丝滑的水波纹
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 你对linux中grep命令知道多少?
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • #vue3 实现前端下载excel文件模板功能
  • ( 10 )MySQL中的外键
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (Python第六天)文件处理
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (十六)Flask之蓝图
  • (数据结构)顺序表的定义
  • (转)http-server应用
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • ./configure,make,make install的作用
  • .chm格式文件如何阅读
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .Net中的设计模式——Factory Method模式
  • @RunWith注解作用
  • [2015][note]基于薄向列液晶层的可调谐THz fishnet超材料快速开关——
  • [20190416]完善shared latch测试脚本2.txt
  • [4.9福建四校联考]
  • [④ADRV902x]: Digital Filter Configuration(发射端)
  • [CareerCup] 17.8 Contiguous Sequence with Largest Sum 连续子序列之和最大