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

项目-轻客管家1-环境准备

1、项目概述

前端:

后端:

所有的项目代码都放在同一个maven项目中的,包括项目中的 实体类、工具类、以及项目的业务代码。

如果把所有的代码都写在一个项目中,主要两点问题:项目中的通用组件难以复用、不方便项目的维护和管理。

2、模块设计

2.1分模块设计:

分模块设计就是将项目按照功能/结构拆分成若干个子模块,每一个模块都是独立的。方便项目的管理维护、拓展,也方便模块键的相互调用、资源共享。

  • 比如:

    • 可以将项目中涉及到的工具类、通用组件,单独抽取到一个maven模块中,就叫qk-common

    • 可以将项目中涉及到的实体类,单独抽取到一个maven模块中,就叫qk-entity

    • 可以将项目中涉及到的核心业务代码,单独抽取到一个maven模块中,就叫qk-management

然后,在别的项目中,如果需要用到那个模块,我们就只需要在pom.xml中引入对应的依赖坐标就可以了。 比如,在qk-management模块中需要用到工具类、实体类,而工具类存放在qk-common模块中,实体类存放在qk-entity模块中,所以此时只需要在qk-management模块的pom.xml 中引入qk-commonqk-entity的依赖坐标即可。

注意:在maven中项目与项目之间,也可以继承,而与java类似,maven项目之间也是单继承,不支持多继承。

2.2 模块创建

具体操作步骤如下:

  1. 创建项目父工程qk-parent,打包方式为pom,设置父工程为spring-boot-starter-parent

  2. 创建子工程qk-common,设置父工程为qk-parent

  3. 创建子工程qk-entity,设置父工程为qk-parent

  4. 创建子工程qk-management,设置父工程为qk-parent

1). 创建项目父工程qk-parent,打包方式为pom,设置父工程为spring-boot-starter-parent

打开idea,创建一个新的project,名字为qk-parent

项目创建完毕后,基础的结构如下:

接下来,我们需要做如下调整:

  • 删除掉 src 目录,因为qk-parent是父工程,里面不需要写任何代码,只是管理其他的子模块。

  • 设置打包方式为pom,标识这个项目是用来管理其他项目的,不写任何代码。

  • 指定继承关系,让qk-parent继承springboot项目统一的父工程spring-boot-starter-parent

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"> <modelVersion>4.0.0</modelVersion> <groupId>com.qk</groupId> <artifactId>qk-parent</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.5.0</version> <relativePath/> </parent> <properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> </project>

2). 创建子工程qk-common,设置父工程为qk-parent

由于该模块,仅仅用来管理一些通用组件、工具类,并不需要单独启动运行,所以创建一个普通的maven项目即可,不需要创建springboot项目。

由于qk-commonqk-parent的子模块,所以将其放在qk-parent下面就可以了。 选中qk-parent项目,右键选择new module

创建完毕后,我们可以看到qk-common已经继承了qk-parent这个父工程了。

如果在maven项目中指定了继承关系,设置了父工程,如果父工程与子工程的组织名、版本一致,子工程坐标中的<groupId><version>是可以省略的,默认与父工程一致。

3). 创建子工程qk-entity,设置父工程为qk-parent

由于该模块,仅仅用来管理一些实体类,也不需要单独启动运行,所以创建一个普通的maven项目即可,不需要创建springboot项目。

由于qk-entityqk-parent的子模块,所以将其放在qk-parent下面就可以了。 选中qk-parent项目,右键选择new module

创建完毕后,我们可以看到qk-entiy已经继承了qk-parent这个父工程了。

4). 创建子工程qk-management,设置父工程为qk-parent

由于 qk-management 里面存储的是轻客管家这个项目的核心代码,最终是要独立运行的。所以这里我们要创建一个SpringBoot项目。

在创建springboot项目时,勾选 web开发的起步依赖,mybatis的依赖,mysql驱动的依赖。

项目创建好了之后,我们可以看到这个项目默认继承了springboot的父工程spring-boot-starter-parent。

而按照我们前面的设计,qk-management是不是需要继承我们自己创建的qk-parent这个父工程啊,所以需要对pom.xml中的配置做如下调整,调整后的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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.qk</groupId> <artifactId>qk-parent</artifactId> <version>1.0-SNAPSHOT</version> </parent> <artifactId>qk-management</artifactId> <version>0.0.1-SNAPSHOT</version> <name>qk-management</name> <description>qk-management</description> <properties> <java.version>17</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>3.0.4</version> </dependency> <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter-test</artifactId> <version>3.0.4</version> <scope>test</scope> </dependency> <dependency> <groupId>com.qk</groupId> <artifactId>qk-common</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <dependency> <groupId>com.qk</groupId> <artifactId>qk-entity</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

2.3 依赖配置

2.3.1 公共依赖抽取

进行了分模块设计与开发之后,在进行依赖配置的时候,如果各个子工程中都需要引入某一项依赖,比如lombok,如果在各个子工程中分别引入,会比较麻烦,并且也不便于维护和管理。

所以,如果是各个子工程中公共的这部分依赖,我们是可以直接统一抽取到父工程,在父工程中统一进行配置的,父工程一旦引入了这部分公共的依赖之后,各个子工程都会继承下来。

2.3.2 版本锁定

我们所创建SpringBoot工程中,项目创建完毕后,在pom.xml中已经自动帮我们配置好了依赖。

http://www.jsqmd.com/news/798231/

相关文章:

  • 十堰改灯首选|千言改灯(前沿改灯):2026最新十堰改灯市场分析十堰改灯首推首选五星级靠谱口碑门店 - Reaihenh
  • 洛谷 P1305:新二叉树 ← DFS
  • 抖音视频怎么去水印?手机电脑都能用的工具对比,2026 免费方案实测 - 科技热点发布
  • 从业者必看:医药资质认证服务核心知识梳理
  • AI东风起,深圳存储与液冷企业市值狂飙,催生一批百亿富豪
  • 工业AI和大模型是一回事吗?拆解制造业场景里的关键技术逻辑
  • 浙江省人民政府于2025年1月26日公布新版《浙江省重点保护陆生野生动物名录》
  • 构建高效团队协作平台:从作战室思维到工程化实践
  • 2026届最火的十大降AI率方案解析与推荐
  • C语言打印三角形别再只会用*了!用字母、数字、符号玩出新花样(附完整代码)
  • SiC晶圆划裂技术:原理、优化与量产挑战
  • Zynq-7000 PL端I2C IP核驱动光模块,设备树配置避坑指南(附完整DTS代码)
  • 2026去水印小程序哪个好用?4款微信小程序排行榜实测对比,新手秒上手 - 科技热点发布
  • Redis哨兵模式详解
  • 完整资源下载|MATLAB|Python代码|Simulink等资源下载|MATLAB|抽水蓄能电站系统的最优竞价策略研究
  • 在DMXAPI上遇见扣子:一次偶然,才开启的AI之旅
  • 从按键开机到I2C隔离:手把手拆解一个智能硬件项目里的MOS管实战配置
  • 从基础到进阶:掌握Matlab mean函数的全维度数据均值计算
  • 3分钟完成Android Studio完全汉化:官方修改版中文语言包终极指南
  • 【最新 v2.7.1 版本】 OpenClaw 2.7.1 极简部署方法及安装包
  • 戴尔OptiPlex安装Ubuntu:从ACPI报错到网卡驱动的完整排障指南
  • 42岁程序员8个月求职记:AI时代,经验贬值?3条转型路径助你逆袭!
  • 2026免费去水印视频软件怎么选?排行榜与最新推荐指南 - 科技热点发布
  • 程力专用汽车股份有限公司官网:全品类车型与服务一站式查询 - 速递信息
  • Python全栈实战:前后端分离开发核心要点
  • Shinkai Node:无代码AI智能体平台架构解析与实战部署
  • 避坑指南:STM32H7使用CMSIS-DSP库做定点数转换,这些细节千万别忽略
  • 2026AI大模型开发「保姆级教程」:从0到1实战,开发者速看直接抄作业!
  • Android 14 + Linux 6.1 平台 RTL8822CE Wi‑Fi 适配实战:从 PCI 已枚举到成功扫描热点
  • 软工5.11