idea 多模块build_[史上最详细]springboot创建基于maven的多模块项目
背景
项目为什么需要用多模块?springmvc难道还不够我们平常使用吗?
设计模式真言:“高内聚、低耦合”,springmvc项目,一般会把项目分成多个包:controller、service、dao、util等,但是随着项目的复杂性提高,想复用其他一个模块的话,因为是包的形式,剥离出来会比较困难,耦合性有点强,常用的方法就是复制代码修改,但是这样会做很多无用功与增加出错几率。
springboot多模块简单来说,就是把按包分模块的模式,借助maven升级到jar的方式,抽象性更加强了,假如jar再升级到到war或者多个集合jar,就成微服务了,在多模块jar模式下可以将某个jar拿出来对外共用,能大大提高代码复用率与开发效率。
话不多说开搞
springboot多模块创建
父模块创建
打开idea:选择Create New Project
或者去官网创建(跟idea创建项目是一样的,我这里用的是idea)
然后选择Spring Initializr
点击next之后—>基本设置
点击next之后->添加依赖
点击next之后->选择项目地址
点击finish之后
子模块创建
父项目名称->右键->new->moudle
点击Spring Initializr(选择合适jdk版本)->next
点击next之后->设置Maven Project 而不是跟父项目相同的Maven Pom
点击next之后->添加依赖
点击next->选择确认项目地址
点击finish完成
然后再创建一个子模块multi-core 过程跟multi-controller一样,我这里就省略了。我们这里就暂时创建两个子模块。
项目创建完成整体结构图
注:由于程序的主入口是multi-controller 所有 multi-core里面 application.properties MultiCoreApplication.java 文件都删除了
修改pom文件
1.修改父项目pom-修改完成如下所示(有注释)
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0modelVersion> <parent> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-parentartifactId> <version>2.4.1version> <relativePath/> parent> <groupId>com.tinygraygroupId> <artifactId>multi-parentartifactId> <version>0.0.1-SNAPSHOTversion> <name>multi-parentname> <description>Demo project for Spring Bootdescription>
<packaging>pompackaging>
<modules> <module>multi-controllermodule> <module>multi-coremodule> modules>
<properties> <java.version>1.8java.version> properties>
<dependencies>
<dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-webartifactId> dependency> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starterartifactId> dependency> <dependency> <groupId>org.projectlombokgroupId> <artifactId>lombokartifactId> <optional>trueoptional> dependency> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-testartifactId> <scope>testscope> dependency> <dependency>
<groupId>org.springframework.bootgroupId> <artifactId>spring-boot-testartifactId> <version>2.0.1.RELEASEversion> <scope>testscope> dependency> dependencies>
project>
2.修改子项目pom
multi-controller
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0modelVersion>
<artifactId>multi-controllerartifactId> <version>0.0.1-SNAPSHOTversion> <name>multi-controllername> <description>Demo project for Spring Bootdescription>
<parent> <artifactId>multi-parentartifactId> <groupId>com.tinygraygroupId> <version>0.0.1-SNAPSHOTversion> parent>
<dependencies>
<dependency> <groupId>com.tinygraygroupId> <artifactId>multi-coreartifactId> <version>0.0.1-SNAPSHOTversion> dependency> dependencies>
<build> <plugins> <plugin> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-maven-pluginartifactId> <configuration> <mainClass>com.tinygray.multicontroller.MultiControllerApplicationmainClass> <layout>JARlayout> configuration> plugin> plugins> build>
project>
multi-core
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0modelVersion>
<artifactId>multi-coreartifactId> <version>0.0.1-SNAPSHOTversion> <name>multi-corename> <description>Demo project for Spring Bootdescription>
<parent> <artifactId>multi-parentartifactId> <groupId>com.tinygraygroupId> <version>0.0.1-SNAPSHOTversion> parent>
<dependencies>
dependencies>
project>
springboot多模块创建完成之后验证启动
验证
你如何知道你的多模块项目搭建完成并能成功启动了呢?看下图:
出现以上图片结果就是你的多模块项目创建完成了并可以启动了
启动
找到启动类
执行启动类
执行成功
浏览器打开
http://localhost:8080
出现以上结果表示多模块项目已经搭建完成了
写一个测试接口访问
创建两个java文件(一个实体类User一个UserController)
User.java、UserController.java文件内容-很简单一个测试接口
浏览器输入http://localhost:8080/user/getUserInfo
出现以上结果就表示测试成功了。
项目地址:
搜索公众号:Madison龙少
回复 springboot-multi-module 获取资源
结束语
扫码关注我们
公众号|Madison龙少
微信号|公众号点击'联系方式'菜单获取
期待你的
分享
点赞
在看
idea 多模块build_[史上最详细]springboot创建基于maven的多模块项目相关推荐
- 手把手教你利用hexo搭建自己的博客网站----史上完整详细版(基于GitHub for mac)
文章目录 一.安装Node.js 1.1 下载完该安装包,直接进行安装即可. 1.2 打开终端,切换至root用户. 1.3 查看一下node的版本 1.4 查看npm的版本 二.安装hexo 2.1 ...
- 史上最详细springboot vue UEditor整合(包括遇到的各种坑)
Vue中引入UEditor看这篇教程https://blog.csdn.net/kshon/article/details/102667318 接下来说说springboot中配置UEditor遇到的 ...
- (史上最详细)C++实战-基于STL 演讲比赛流程管理系统
项目需求 本案例来源于黑马 C++视频课程,以下内容为学习笔记 1.1 比赛规则 学校举行一场演讲比赛,共有12个人参加.比赛共两轮,第一轮为淘汰赛,第二轮为决赛. 比赛方式:分组比赛,每组6个人:选 ...
- python导入同级包_python小课堂15 - 史上最详细的包和模块import讲解篇
python小课堂15 - 史上最详细的包和模块import讲解篇 前言 在大量的代码设计中,我们不可能将所有代码都写在一个.py文件,所以有了包.模块,而为了代码可以重复利用(复用性),就有了类.函 ...
- python 引入同一路径的类_python小课堂15 - 史上最详细的包和模块import讲解篇
python小课堂15 - 史上最详细的包和模块import讲解篇 前言 在大量的代码设计中,我们不可能将所有代码都写在一个.py文件,所以有了包.模块,而为了代码可以重复利用(复用性),就有了类.函 ...
- 【python小课堂专栏】python小课堂15 - 史上最详细的包和模块import讲解篇
python小课堂15 - 史上最详细的包和模块import讲解篇 前言 在大量的代码设计中,我们不可能将所有代码都写在一个.py文件,所以有了包.模块,而为了代码可以重复利用(复用性),就有了类.函 ...
- 史上最详细的LXR安装介绍
史上最详细的LXR安装介绍(Ubuntu14.04+Apache2.4.7) 简介: LXR (Linux Cross Reference)是一个通过交叉索引方便用户查看项目源代码的工具.项目地址:h ...
- 史上最详细sql注入wp
文章目录 sql注入wp(史上最详细) 前言 什么是SQL注入? SQL注入的原理 常见的注入方式 常见绕过技巧 常见防控SQL注入的方法 手工查询语句 Basic Challenges Less-1 ...
- 史上最详细的Pytorch版yolov3代码中文注释详解(四)
史上最详细的Pytorch版yolov3代码中文注释详解(一):https://blog.csdn.net/qq_34199326/article/details/84072505 史上最详细的Pyt ...
最新文章
- 服务器可视化_系统管理员不可错过的6款服务器监控工具
- linux uts namespace 提供了主机名和域名的隔离 docker中被用到
- [概统]本科二年级 概率论与数理统计 第七讲 期望、方差与相关性
- C++引用(Reference)
- 【GamePlay】入门篇
- java调用shell脚本并传递参数
- 猫和老鼠 蓝桥杯/手速/暴力练习赛(暴力搜索)
- java catch中 return_JAVA中try、catch、finally带return的执行顺序总结
- 华为P7电信4G版刷机包 EMUI2.3 官方B125 第3版 精简 ROOT
- const char * char * const
- 双系统ubuntu无法进入_win10下安装ubuntu双系统
- TFTPClient
- linux看门狗机制
- html四边形布局,canvas四边形.html
- Raspberry Pi Pico实践系列1-Windows环境下树莓派Pico迷你开发板MicroPython快速上手实践
- 【Pytorch】量化
- 2019年厦门国际银行“数创金融杯”数据建模大赛总结
- 凉开水泡绿茶有利降血糖
- a19_Python文件I/O---学习笔记
- rtx服务器设置 文件,rtx 服务器 文件传输 配置
热门文章
- “约见”面试官系列之常见面试题之第一百零三篇之vue-router实现路由懒加载(建议收藏)
- “约见”面试官系列之常见面试题之第六十四篇之call和apply区别(建议收藏)
- 前端学习(2080):计算属性和methods得对比
- plsql轻量版触发器
- oracle之基本的sql_select语句全
- 前端学习(1365):express框架导读
- 前端学习(796):字符串不可变
- 第二十一期:老大难的GC原理及调优,这全说清楚了
- java学习(46):无参带返回
- centos7搭建apache服务器(亲测可用)