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

SpringBoot(十七)创建多模块Springboot项目

在gitee上查找资料的时候,发现有不少Springboot项目里边都是嵌套了多个Springboot项目的。这个玩意好,在协作开发的时候,将项目分成多个模块,有多个团队协作开发,模块间定义标准化通信接口进行数据交互即可。

这个好这个。我之前创建的博客项目是单模块的SpringBoot项目,那我创建一个多模块的SpringBoot项目来将我的博客改成多模块项目。正好后边可以用这个尝试下微服务。

下边记录一下SpringBoot多模块项目的创建流程

一:创建父工程

首先我们先在IDEA中创建一个父项目,使用Maven托管。如下图所示:

1.jpg

点击下一步,不需要添加任何依赖,点击创建完成即可。

项目创建成功如下图所示:

2.jpg

删除图上红框标注的所有文件,只保留pom.xml

二:创建Utils子模块

这个跟创建父工程的流程是一样的,唯一不同的就是第一步,如下图所示:

3.jpg

4.jpg

建议创建子模块的包名是一致的,我这里使用的包名是:com.modules

子模块创建成功之后,我们配置一下子模块的pom.xml使其成为父工程的子工程。

在子工程pom.xml中添加

<!-- 配置父工程   --><parent><groupId>com.modules</groupId><artifactId>NacosProject</artifactId><version>0.0.1-SNAPSHOT</version></parent>

如下图所示:

5.jpg

接着在父工程的pom.xml中配置:

<!--将子模块放在一堆    start   --><modules><module>NacosUtils</module></modules><!--将子模块放在一堆    end     -->

因为我这里创建的utils子模块只存储以后项目中需要的公共的utils公共文件,因此不需要启动类,也就不需要配置resources下方的application.properties文件。如下图所示:

6.jpg

删除成功之后,我们在com.modules.nacosutils目录下创建Utiils.java文件:

package com.modules.nacosutils;public class Utils{public static void utils(){System.out.println("我是NacosUtils项目中的Utils类的utils方法");}}

这个项目创建到这里即可,接下来我们继续创建其他子项目。

三:创建service子模块

创建NacosService子模块。具体参照NacosUtils创建截图,这里不再赘述。

配置方式跟NacosUtils方式一致。

在NacosService项目中的pom.xml中添加父项目信息:

<!-- 配置父工程   --><parent><groupId>com.modules</groupId><artifactId>NacosProject</artifactId><version>0.0.1-SNAPSHOT</version></parent>

添加对NacosUtils项目的依赖:

<dependency><groupId>com.modules</groupId><artifactId>NacosUtils</artifactId><version>0.0.1-SNAPSHOT</version><scope>compile</scope></dependency>

在父项目的pom.xml中添加子项目信息:

<!--将子模块放在一堆    start   --><modules><module>NacosUtils</module><module>NacosService</module></modules><!--将子模块放在一堆    end     -->

NacosService模块主要存放三层架构中的service逻辑层,主要用来处理逻辑,因此这里也不需要启动类以及resources下方的application.properties文件,删除。

在com.modules.nacosservice目录下创建nacosService.java文件

package com.modules.nacosservice;import com.modules.nacosutils.Utils;import org.springframework.stereotype.Service;@Servicepublic class nacosService{public void nacos(){// 调用 NacosUtils项目下的Utils类Utils.utils();System.out.println("我是NacosService项目中的nacos方法");}}

这个模块先创建到这里

四:创建controller子模块

创建NacosController子模块。具体参照NacosUtils创建截图,这里不再赘述。

在NacosController项目中的pom.xml中添加父项目信息:

<!-- 配置父工程   --><parent><groupId>com.modules</groupId><artifactId>NacosProject</artifactId><version>0.0.1-SNAPSHOT</version></parent>

添加对NacosService项目的依赖:

<dependency><groupId>com.modules</groupId><artifactId>NacosService</artifactId><version>0.0.1-SNAPSHOT</version><scope>compile</scope>

相关文章:

SpringBoot(十七)创建多模块Springboot项目

在gitee上查找资料的时候,发现有不少Springboot项目里边都是嵌套了多个Springboot项目的。这个玩意好,在协作开发的时候,将项目分成多个模块,有多个团队协作开发,模块间定义标准化通信接口进行数据交互即可。 这个好这个。我之前创建的博客项目是单模块的SpringBoot项目,…...

Vue.js 高质量翻页功能的完整开发指南

文章目录 Vue.js 翻页组件的完整开发与优化指南前言分析分页需求与设计要点基础分页功能的实现分页逻辑 优化分页&#xff1a;封装为组件化设计组件化代码 提升用户体验与性能动态调整每页显示的条目数优化移动端与桌面端的展示高性能翻页策略&#xff1a;按需加载与懒加载提示…...

android dvr黑屏

问题现象&#xff1a;dvr拍摄的图片是黑的&#xff0c;没有buffer数据的。 查看相关的log文件发现&#xff1a; video surface 未释放导致 祥见一下报错信息&#xff1a; 38298 2024-10-16 01:02:51.855 4056 32068 W MediaCodecRenderer: java.lang.IllegalStateExcepti…...

css文字间距撑满横向距离

效果&#xff1a; 代码&#xff1a; 、 text-align:justify;text-align-last: justify;...

【Unity基础】对比OnCollisionEnter与OnTriggerEnter

在Unity中&#xff0c;OnCollisionEnter 和 OnTriggerEnter 是两种用于处理碰撞的回调函数&#xff0c;但它们的工作方式和使用场景有所不同&#xff1a; 1. OnCollisionEnter 触发条件&#xff1a;当一个带有 Collider 组件并且**未勾选“Is Trigger”**的物体&#xff0c;与…...

算法训练(leetcode)二刷第二十五天 | *134. 加油站、*135. 分发糖果、860. 柠檬水找零、*406. 根据身高重建队列

刷题记录 *134. 加油站*135. 分发糖果860. 柠檬水找零*406. 根据身高重建队列 *134. 加油站 leetcode题目地址 当前站点可以剩余油量gas[i] - cost[i]; 将每站的剩余油量求和计算累计剩余油量&#xff0c;总剩余油量小于0&#xff0c;则无法行驶一周。 若在到达某一站时累计剩…...

Springboot 整合 itext 实现PDF文件合并,识别图片则转成PDF拼接

目录 前言一、引用依赖二、使用步骤1.Controller2.Service接口3.实现类三、请求接口及结果前言 本文实现 Springboot 整合 itext 实现PDF文件合并,图片转PDF拼接。 一、引用依赖 <dependency><groupId>com.itextpdf</groupId><artifactId>itext7-co…...

TypeScript 中的 ! 和 ? 操作符

在 TypeScript 中&#xff0c;! 和 ? 是两个非常重要且常用的操作符&#xff0c;分别用于非空断言和可选链操作。下面简单介绍一下二者。 1. 非空断言操作符 ! 1.1 含义 非空断言操作符 !&#xff08;Non-null assertion operator&#xff09;用来告诉 TypeScript 编译器&a…...

开源三代示波器的高速波形刷新方案开源,支持VNC远程桌面,手机,Pad,电脑均可访问(2024-11-11)

说明&#xff1a; 1、本来这段时间是一年一度Hackaday硬件设计开源盛宴&#xff0c;但hackaday电子大赛在去年终结了。所以我开源个我的吧。 2、三代示波器的高速波形刷新方案&#xff0c;前两年就做好了&#xff0c;这两年忙H7-TOOL的更新比较多&#xff0c;三代示波器的更新…...

谷歌推出设备内置人工智能,实时向手机用户发出诈骗电话警报

Google 宣布推出适用于 Android 的新安全功能&#xff0c;可实时防御诈骗和有害应用。 这些功能由先进的设备内置 AI 提供支持&#xff0c;可在不损害隐私的情况下增强用户安全性。 这些新的安全功能首先在 Pixel 上推出&#xff0c;并将很快在更多 Android 设备上推出。 诈…...

AI换人脸facefusion项目口型同步‌API化改造及部署

一. 简介 ‌FaceFusion‌是一款强大的AI换脸软件&#xff0c;它支持图片、视频以及直播换脸&#xff0c;官方将其称为“下一代脸部交换器和增强器”。FaceFusion的最新版本为2.6.1&#xff0c;这个版本在原有基础上增加了更多的模型和高清算法&#xff0c;显著提升了图片和视频…...

移动端问题

这里只是做一个记录&#xff0c;不一定大家都会有问题&#xff0c;参考就行 一、页面回弹 苹果有&#xff0c;安卓没有 解决&#xff1a;pages.json下 app-plus { bounce: none} 关闭回弹效果 二、onreachBottom触底生命周期&#xff0c;ios无法触发 修改触底数值&#xff1a…...

Linux网络——网络初识

目录 1. 认识协议 2. 协议的分层 3. OSI 七层模型 && TCP/IP 五层(四层)模型 4. 网络传输的基本流程 5. 以太网的通信原理 6. 数据的跨网络传播 7. 认识 IP 地址 ① IP 是什么 ② IP 与 MAC 的关系 ③ 为什么需要 IP 在谈及网络之前&#xff0c;我们要先对学…...

从华为到创业公司

我有一个朋友&#xff0c;在华为工作了很长一段时间&#xff0c;一年多前&#xff0c;他从华为出来到了一家创业公司。 周末趁着有时间&#xff0c;我跟他聊了下关于从华为到创业公司的一些问题&#xff0c;总结给大伙看看。 ▎1 在华为工作和在创业公司工作最大的差别是什么呢…...

Vue 组件通信及进阶语法

文章目录 一、scoped 样式冲突二、data 是一个函数三、组件通信1. 父子通信1.1 props 校验1.2 props 比较 data 2. 非父子通信2.1 event bus2.2 provide-inject 四、进阶语法1. v-model 详解2. sync 修饰符3. ref 和 $refs4. $nextTick 一、scoped 样式冲突 注意点&#xff1a;…...

vue文本高亮处理

在vue的v-for循环中处理搜索关键字高亮问题&#xff0c;通过截取文字判断&#xff0c;分成三段拼接起来 <div class"check-list" v-if"shopList.length >0"><a-checkbox change"onChangeShop($event,item)" :checked"checkedL…...

androidstudio入门到放弃配置

b站视频讲解传送门 android_studio安装包&#xff1a;https://developer.android.google.cn/studio?hlzh-cn 下载安装 开始创建hello-world 1.删除缓存 文件 下载gradle文件压缩&#xff1a;gradle-8.9用自己创建项目时自动生成的版本即可&#xff0c;不用和我一样 https://…...

NLP论文速读(谷歌出品)|缩放LLM推理的自动化过程验证器

论文速读|Rewarding Progress: Scaling Automated Process Verifiers for LLM Reasoning 论文信息&#xff1a; 简介&#xff1a; 这篇论文探讨了如何提升大型语言模型&#xff08;LLM&#xff09;在多步推理任务中的性能。具体来说&#xff0c;它试图解决的问题是现有的基于结…...

【Linux学习】【Ubuntu入门】1-4 ubuntu终端操作与shell命令1

1.使用快捷键CtrlAltT打开命令终端&#xff0c;或者单击右键点击… 2.常用shell命令 目录信息查看命令&#xff1a;ls ls -a&#xff1a;显示目录所有文件及文件夹&#xff0c;包括隐藏文件&#xff0c;比如以.开头的 ls -l&#xff1a;显示文件的详细信息 ls -al&#xff1…...

【Qt】Qt在窗口中加载Web界面的方法汇总

1、Qt WebEngine 1)Qt版本:Qt5.4以上; 2)平台要求(https://doc.qt.io/archives/qt-5.9/qtwebengine-platform-notes.html): 例如:Windows下只能使用 MSVC 编译器,不支持MinGW编译器,会报错(: error: Unknown module(s) in QT: webenginewidgets) 并且不能用在Qt编…...

Purple Pi OH开发板Android 11系统ROOT权限获取与Magisk实战指南

1. 项目概述&#xff1a;为什么我们需要对Purple Pi OH进行ROOT&#xff1f;拿到一块Purple Pi OH开发板&#xff0c;刷上Android 11系统&#xff0c;对于开发者或极客玩家来说&#xff0c;最常遇到的第一个“痒点”可能就是权限不足。系统默认运行在“用户模式”下&#xff0c…...

全志T153异构处理器在工业控制与边缘计算中的应用实战解析

1. 项目概述&#xff1a;一颗为工业场景量身定制的“中国芯”最近在关注国产工业控制核心板的朋友&#xff0c;应该都注意到了米尔电子和全志科技这对“老搭档”又出新作了。继T113、T507这些在工控、边缘计算领域已经打下不错口碑的系列之后&#xff0c;他们这次联手推出了基于…...

YOLOv8实时目标检测与自适应控制技术在游戏辅助系统中的应用研究

YOLOv8实时目标检测与自适应控制技术在游戏辅助系统中的应用研究 【免费下载链接】RookieAI_yolov8 基于yolov8实现的AI自瞄项目 AI self-aiming project based on yolov8 项目地址: https://gitcode.com/gh_mirrors/ro/RookieAI_yolov8 技术挑战剖析&#xff1a;实时游…...

基于RK3588S与鸿蒙系统的SOM核心板:高性能嵌入式AIoT开发实战

1. 项目概述&#xff1a;一颗“全能芯”的鸿蒙新载体最近在嵌入式圈子里&#xff0c;一个消息挺让人兴奋的&#xff1a;触觉智能基于瑞芯微RK3588S这颗“明星”SoC打造的SOM3588S核心板&#xff0c;正式支持鸿蒙系统并上市了。这不仅仅是又多了一块高性能的核心板&#xff0c;它…...

使用Nodejs与Taotoken构建稳定可靠的AI对话服务后端

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用Nodejs与Taotoken构建稳定可靠的AI对话服务后端 在构建集成AI能力的后端服务时&#xff0c;开发者常常面临模型选择、API稳定性…...

终极LibreDWG CAD转换完全指南:5个高效使用技巧

终极LibreDWG CAD转换完全指南&#xff1a;5个高效使用技巧 【免费下载链接】libredwg Official mirror of libredwg. With CI hooks and nightly releases. PRs ok 项目地址: https://gitcode.com/gh_mirrors/li/libredwg LibreDWG是一款强大的开源CAD文件处理库&#…...

别再到处找汉化包了!PowerDesigner 15.1 保姆级安装与汉化教程(附资源)

PowerDesigner 15.1 完整安装与汉化实战指南 对于数据库设计领域的初学者和专业开发者来说&#xff0c;PowerDesigner无疑是一款功能强大的建模工具。然而&#xff0c;英文界面常常成为非英语母语用户的第一道门槛。本文将提供一份从零开始的完整解决方案&#xff0c;涵盖软件安…...

折叠Cascode运放设计避坑指南:从90dB增益掉到60dB?可能是这5个细节没做好

折叠Cascode运放设计避坑指南&#xff1a;从90dB增益掉到60dB&#xff1f;可能是这5个细节没做好 在模拟IC设计的深水区&#xff0c;折叠Cascode运算放大器就像一位优雅的芭蕾舞者——看似轻盈的架构下隐藏着对每个技术细节的极致把控。当您精心设计的电路从仿真器中吐出60dB增…...

Cadence Virtuoso计算器函数面板:从仿真波形到关键指标,手把手教你提取运放GBW和相位裕度

Cadence Virtuoso计算器函数实战&#xff1a;运放AC特性自动化评估指南 在模拟电路设计的日常工作中&#xff0c;我们常常需要面对这样的场景&#xff1a;完成运放AC仿真后&#xff0c;面对密密麻麻的波形曲线&#xff0c;如何快速准确地提取出增益带宽积(GBW)和相位裕度(PM)这…...

LeetCode IPO问题题解

LeetCode IPO问题题解 题目描述 给定初始资本 w&#xff0c;最多完成 k 个项目。每个项目有利润和最低资本要求。找到能够获得的最大资本。 示例&#xff1a; 输入&#xff1a;capital [0,1,2,3], profits [1,2,3,5], k 2, w 0输出&#xff1a;4 解题思路 方法&#…...