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

springboot多项目结构

微服务的目录结构一般分为如下几个模块:

 当我们做的项目稍微大一点之后,就会经常遇到需要把不同的模块分离出来的时候,比如微信的朋友圈、微信支付、聊天服务等模块,像这种微服务项目一般都会把base、common、前端抽离出来。

common:用于存放一些公用的模块,比如枚举类(成功和失败返回数据),对外公开,pom里面不含任何和业务相关的东西。
base:一个写业务逻辑的包,把项目公用的业务模块抽出来放到项目里,不对外公开。在base的pom文件里包含了所有公用业务逻辑的依赖,在base里引用之后,其他的业务模块就不需要再进入这些依赖了(依赖传递)。

注意在其他业务逻辑的模块里面,都需要引入base:


base依赖于common,因为实现base里面的业务也需要用到common里的枚举等。

 在父项目的pom文件里面有一个<dependencyManagement> 标签,像这样:

 所有导入的依赖都被放到了<dependencyManagement> 标签里面,

<dependencyManagement> 的作用:

管理依赖版本号,微服务项目如果把所有模块的依赖各自引入,会出现版本冲突的问题,所以<dependencyManagement>充当了一个全局的依赖管理。当某个 Maven 模块需要具体引用某依赖的时候,直接在集合中指定若干个,这样就可以实现整个项目依赖的全局管理,不至于零碎地分布在每个模块中。在此标签元素中声明了所需依赖的版本号等信息,当子项目引入此依赖 jar 包时就需要列出版本号,如果不添加此标签的话子模块的pom文件就会直接继承

 relativePath的作用:

默认值为../pom.xml,会从本地路径中获取parent的pom。

如果是一个空值,表示将始终从仓库(父级的pom文件)中获取,不从本地路径获取。

maven构建jar包时候查找顺序:relativePath元素中的地址–本地仓库–远程仓库 

相关文章:

  • 对认定为奉贤区单项冠军企业的给予一次性30万奖励
  • 一辈子干好一件事,你就了不起
  • 前端基础(十)_Dom自定义属性(带案例)
  • CSDN编程竞赛 ——— 第二十一期
  • java笔记(十二)重新理解java基本特性
  • 【BP靶场portswigger-服务端8】文件上传漏洞-7个实验(全)
  • STM32常用开发案例,STM32开发方案含USB升级、Fatfs存储、软件定时器、数据结构、按键处理库、解析单行带空格的字符串
  • kettle简单的ETL抽取同步两个库之间的数据
  • C语言常用字符串函数
  • 基于 js 制作一个贪吃蛇小游戏
  • 你知道猜凶手和猜名次如何利用编程实现吗?
  • SpringBoot动态生成接口
  • 一图读懂mybatis 查询接口的源码流程
  • Linux中的vim最小集、指令集及其配置
  • 【胖虎的逆向之路】02——Android整体加壳原理详解实现
  • CAP理论的例子讲解
  • crontab执行失败的多种原因
  • extjs4学习之配置
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • iOS小技巧之UIImagePickerController实现头像选择
  • Java超时控制的实现
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • webpack4 一点通
  • 利用jquery编写加法运算验证码
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 我是如何设计 Upload 上传组件的
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • $L^p$ 调和函数恒为零
  • (汇总)os模块以及shutil模块对文件的操作
  • (七)c52学习之旅-中断
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (四)图像的%2线性拉伸
  • (转)德国人的记事本
  • (转载)从 Java 代码到 Java 堆
  • 、写入Shellcode到注册表上线
  • .axf 转化 .bin文件 的方法
  • .net core开源商城系统源码,支持可视化布局小程序
  • .NET delegate 委托 、 Event 事件
  • .Net Web项目创建比较不错的参考文章
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .NET6 命令行启动及发布单个Exe文件
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • .sh 的运行
  • ;号自动换行
  • [100天算法】-实现 strStr()(day 52)
  • [AIR] NativeExtension在IOS下的开发实例 --- IOS项目的创建 (一)
  • [Android] Android ActivityManager
  • [ASP.NET MVC]如何定制Numeric属性/字段验证消息
  • [BZOJ 3680]吊打XXX(模拟退火)
  • [hdu 4405] Aeroplane chess [概率DP 期望]
  • [hive] posexplode函数
  • [HNOI2010]BUS 公交线路