新建微服务模块Maven子工程

news2025/7/5 3:06:51

  gitegg-cloud是微服务框架,整体功能是非业务相关的基础功能,在实际业务开发过程中需要新建微服务的业务模块,根据业务的整体规划,设计新建Maven子工程。
  下面以常用的电商项目举例新建Maven子工程,电商项目一般包含商品微服务,订单微服务,支付微服务,账户微服务等,我们的整体规划是将电商项目作为一个整体的微服务Maven父工程,商品微服务,订单微服务,支付微服务,账户微服务作为电商项目的子工程,微服务之间通过Feign相互调用,所以我们在gitegg-cloud下新建gitegg-mall和gitegg-mall-client两个Maven工程。

 

Maven工程结构

下面以创建gitegg-mall和gitegg-mall-goods为例创建Maven父子工程:

1、在gitegg-cloud工程上点击右键,然后选择:New > Module... ,选择Maven,Create from archetype不要勾选,点击Next进入下一步,填写工程信息。

新建Maven工程

 

2、填写项目名称,选择工程代码存放路径,GroupId 、ArtifactId、Version,然后点击Finish完成创建。

填写Maven信息

3、因为gitegg-mall工程下面还要存放子模块工程,gitegg-mall也是一个父工程,所以删除工程下用不到的src目录。此时,pom.xml文件中没有节点<packaging>pom</packaging>,这里不需要处理,当创建子工程之后,这里会自动添加此节点。

gitegg-mall父工程

4、同样的方式创建gitegg-mall-client父工程,用于存放微服务之间相互调用的Feign客户端。

gitegg-mall-client

5、创建gitegg-mall第一个子工程gitegg-mall-goods商品微服务,在gitegg-mall工程上点击右键,然后选择:New > Module... > Maven,在Maven窗口点击右键选择org.apache.tapestry:quickstart,在Name处填入子工程名称:gitegg-mall-goods,然后点击Finish,子工程创建完成。

maven-quickstart

 

gitegg-mall-goods

6、同样的方式创建gitegg-mall-goods-client子工程,用于存放商品微服务之间相互调用的Feign客户端。

gitegg-mall-goods-client

 

gitegg-mall-goods-client

7、设置项目依赖库,复制gitegg-service下面的pom.xml里面的依赖库配置dependencies,放到gitegg-mall的pom.xml里。

需要复制的内容:

    <dependencies>
        <!-- gitegg Spring Boot自定义及扩展 -->
        <dependency>
            <groupId>com.gitegg.platform</groupId>
            <artifactId>gitegg-platform-boot</artifactId>
        </dependency>
        <!-- gitegg Spring Cloud自定义及扩展 -->
        <dependency>
            <groupId>com.gitegg.platform</groupId>
            <artifactId>gitegg-platform-cloud</artifactId>
        </dependency>
        <!-- gitegg数据库驱动及连接池 -->
        <dependency>
            <groupId>com.gitegg.platform</groupId>
            <artifactId>gitegg-platform-db</artifactId>
        </dependency>
        <!-- gitegg mybatis-plus -->
        <dependency>
            <groupId>com.gitegg.platform</groupId>
            <artifactId>gitegg-platform-mybatis</artifactId>
        </dependency>
        <!-- gitegg swagger2-knife4j -->
        <dependency>
            <groupId>com.gitegg.platform</groupId>
            <artifactId>gitegg-platform-swagger</artifactId>
        </dependency>
        <!-- gitegg cache自定义扩展 -->
        <dependency>
            <groupId>com.gitegg.platform</groupId>
            <artifactId>gitegg-platform-cache</artifactId>
        </dependency>
        <dependency>
            <groupId>com.gitegg.platform</groupId>
            <artifactId>gitegg-platform-redis</artifactId>
        </dependency>
        <!-- spring boot web核心包 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- spring boot 健康监控 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>

8、设置项目依赖库和打包配置,复制gitegg-service-client下面的pom.xml里面的依赖库配置dependencies和build内容,放到gitegg-mall-client的pom.xml里。

需要复制的内容:

    <dependencies>
        <!-- gitegg Spring Boot自定义及扩展 -->
        <dependency>
            <groupId>com.gitegg.platform</groupId>
            <artifactId>gitegg-platform-boot</artifactId>
        </dependency>
        <!-- gitegg Spring Cloud自定义及扩展 -->
        <dependency>
            <groupId>com.gitegg.platform</groupId>
            <artifactId>gitegg-platform-cloud</artifactId>
        </dependency>
        <!-- gitegg swagger2-knife4j -->
        <dependency>
            <groupId>com.gitegg.platform</groupId>
            <artifactId>gitegg-platform-swagger</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!--client模块不打可执行的jar包,打普通jar包即可-->
                    <skip>true</skip>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.google.cloud.tools</groupId>
                <artifactId>jib-maven-plugin</artifactId>
                <configuration>
                    <!--此模块不打可执行的jar包,打普通jar包即可-->
                    <skip>true</skip>
                </configuration>
            </plugin>
        </plugins>
    </build>

9、复制工程配置文件bootstrap.yml、bootstrap-dev.yml、bootstrap-test.yml、bootstrap-prod.yml到gitegg-mall-goods的src/main/resources目录下,gitegg-mall-goods-client不需要这些配置文件,在gitegg-mall-goods的pom.xml中新增打包插件配置。
  同样client工程相关的配置也需要参考gitegg-service-client和gitegg-service-system-client里面的pom.xml配置,复制到gitegg-mall-goods和gitegg-mall-goods-client的pom.xml中。

    <build>
        <plugins>
            <plugin>
                <groupId>com.google.cloud.tools</groupId>
                <artifactId>jib-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

10、修改bootstrap.yml里面的服务端口配置,修改成一个当前未占用的端口。

修改端口

11、新建微服务启动类GitEggMallApplication,可以直接复制GitEggSystemApplication然后修改内容,包名根据自己规划,这里设置为com.gitegg.mall.goods.brand。

GitEggMallApplication 代码

/**
 * gitegg-mall 启动类
 * @author GitEgg
 */
@EnableDiscoveryClient
@EnableFeignClients(basePackages = "com.gitegg")
@ComponentScan(basePackages = "com.gitegg")
@SpringBootApplication
public class GitEggMallApplication {
    public static void main(String[] args) {
        SpringApplication.run(GitEggMallApplication.class,args);
    }
}

  Maven工程创建好之后,就可以点击GitEggMallApplication 右键运行,测试是否配置正确,后面的操作就是编写具体的增删查改等业务逻辑代码。gitegg-cloud提供代码生成器,下一节介绍说明如何使用代码生成器根据表设计生成前后端代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/363111.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【总结】2023数学建模美赛!收官!

今年的美赛时间是2.17-2.21&#xff0c;这学期疫情放开了之后管的没那么严了&#xff0c;我们小组就都提前一天到学校了&#xff0c;全力准备17号的比赛。 时间流程 刚拿到6个题的时候&#xff0c;我们三个人一人看两个题&#xff0c;每个人从两个题中再选出来一个自己觉得有…

【蓝桥杯每日一题】前缀和算法

&#x1f34e; 博客主页&#xff1a;&#x1f319;披星戴月的贾维斯 &#x1f34e; 欢迎关注&#xff1a;&#x1f44d;点赞&#x1f343;收藏&#x1f525;留言 &#x1f347;系列专栏&#xff1a;&#x1f319; 蓝桥杯 &#x1f319;我与杀戮之中绽放&#xff0c;亦如黎明的花…

数据结构与算法(三):栈与队列

上一篇《数据结构与算法&#xff08;二&#xff09;&#xff1a;线性表》中介绍了数据结构中线性表的两种不同实现——顺序表与链表。这一篇主要介绍线性表中比较特殊的两种数据结构——栈与队列。首先必须明确一点&#xff0c;栈和队列都是线性表&#xff0c;它们中的元素都具…

4、Redis安装

前言&#xff1a;工具下载地址阿里云盘&#xff1a;Redis&#xff1a;https://www.aliyundrive.com/s/qSYxRyXAxQy提取码: ne27一、Redis下载下载地址&#xff1a;https://github.com/tporadowski/redis/releases此处下载mis版本&#xff0c;安装版mis版直接安装成功就启动服务…

CCNP350-401学习笔记(451-500题)

451、what is the function of the LISP map resolver? A. to send traffic to non-LISP sites when connected to a service provider that does not accept nonroutable EIDs as packet sources B. to connect a site to the LISP-capabie part of a core network, publish …

数据挖掘,计算机网络、操作系统刷题笔记53

数据挖掘&#xff0c;计算机网络、操作系统刷题笔记53 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能很多算法学生都得去找开发&#xff0c;测开 测开的话&#xff0c;你就得学数据库&#xff0c;sql&#xff0c;orac…

2023年AI语音会议汇总

2023年&#xff0c;AI语音领域学术会议精彩纷呈&#xff0c;语音之家汇总了国内外重要的会议呈现给大家&#xff0c;大家可根据时间统筹安排好2023年的学术活动交流行程。如果信息有误&#xff0c;欢迎指正。 ICASSP 2023 2023 IEEE International Conference on Acoustics, S…

【操作系统】概述

操作系统 操作系统的定义与目标 定义&#xff1a;操作系统是控制管理计算机系统的硬软件&#xff0c;分配调度资源的系统软件。 目标&#xff1a;方便性&#xff0c;有效性&#xff08;提高系统资源的利用率、提高系统的吞吐量&#xff09;&#xff0c;可扩充性&#xff0c;…

node.js降低版本的方式(解决sass和node.js冲突)

一、概述 在使用vue的时候&#xff0c;会遇到项目的依赖&#xff08;package.json可以查看依赖信息&#xff09;下载失败的原因。因为项目用的依赖和要运行环境的node.js版本起了冲突&#xff0c;这个时候就要么更改项目的依赖版本&#xff0c;要么更改node.js的版本。本文示范…

11种主流生成式AI应用【2023】

生成式 AI 允许在几分钟内生成新颖逼真的视觉、文本和动画内容。 据 Gartner 称&#xff0c;到 2025 年&#xff0c;生成式 AI 生成的数据将占所有生成数据的 10%。 作为 2022 年最重要的战略技术趋势之一&#xff0c;人工智能 (AI) 的这一分支具有广泛的应用&#xff0c;适用…

提高转化率的 3 个客户引导最佳实践

如果您的试用客户没有转化为付费客户&#xff0c;或者您总体上正在努力解决试用到付费转化率&#xff0c;那么您来对地方了。本文的最终目标是向您展示一些可用于提高自己的激活率和整体试用到付费转化的最佳客户引导实践。SaaS公司目前生活在一个以产品为主导的增长时代。换句…

Tencent OS下逻辑卷(LVM)增加硬盘扩容

上一篇文章写了逻辑卷创建以及使用剩余空间为已经创建的逻辑卷扩容。 本篇是针对卷组空间已经用尽时的扩容方法。那就是增加硬盘。 首先我们为虚拟机增加硬盘/dev/sdd 使用fdisk为/dev/sdd分区,方法在上一篇文章已经描述,在此不再赘述。 新增的硬盘使用如下命令添加到卷组…

【日志框架-笔记】JUL日志框架的介绍及其使用

日志框架JUL日志框架入门程序Logger直接的父子继承关系Formatters独立的配置文件进行编写日志使用日志打印异常学习日志无非就是为了四大目的&#xff1a; 问题诊断&#xff0c;调试程序&#xff1b;错误定位&#xff0c;定位数据问题、网络问题、内存问题等错误位置&#xff…

【进阶教程】Appium自动化测试,太详细了!

目录Appium环境搭建Mac iOS环境搭建Appium基础Appium进阶Monkey的使用Copyadb shell monkey -p com.lqr.wechat -v 500 > monkey.logadb shell monkey -p com.lqr.wechat -vvv 5000 > monkey2.logadb shell monkey -p com.lqr.wechat -vvv 5000--send1556166765229 --thr…

pdb文件删除杂原子 HETATM;保留或去除水分子

删除杂原子 HETATM&#xff1b;去除水分子 with open(r"C:*****\StructA.pdb", "r") as inputFile,open(r"C*****8\StructA_remove_HETATM.pdb","w") as outFile:for line in inputFile:if not line.startswith("HETATM"):…

C++复习笔记13

多态&#xff1a;具体点就是去完成某个行为&#xff0c;当不同的对象去完成时会产生出不同的状态。&#xff08;同一个接口根据调用对象不同产生不同的行为&#xff09;。两个条件&#xff1a; 1. 必须通过基类的指针或者引用调用虚函数。 2. 被调用的函数必须是虚函数&#x…

ESP32 Arduino FAT文件系统详细使用教程

ESP32 Arduino FAT文件系统详细使用教程&#x1f4cc;参考1&#xff08;在 Linux环境下创建二进制文件&#xff09;&#xff1a;https://github.com/marcmerlin/esp32_fatfsimage&#x1f4cc;参考2 http://marc.merlins.org/perso/arduino/post_2019-03-30_Using-FatFS-FFat-o…

Scala函数式编程(第五章:函数基础、函数高级详解)

文章目录第 5 章 函数式编程5.1 函数基础5.1.1 函数基本语法5.1.2 函数和方法的区别5.1.3 函数定义5.1.4 函数参数5.1.5 函数至简原则&#xff08;重点&#xff09;5.2 函数高级5.2.1 高阶函数5.2.2 匿名函数5.2.3 高阶函数案例5.2.4 函数柯里化&闭包5.2.5 递归5.2.6 控制抽…

GooglePlay SSL Error Handler

应用上架GooglePlay 收到邮件提示 出现这个原因是因为我在app中使用webview加载Https的H5界面&#xff0c;在onReceivedSslError()中处理SslErrorHandler时&#xff0c;出现白屏现象&#xff0c;原因是webview默认在加载有证书验证的url时&#xff0c;会默认使用handler.cancel…

SPDK vhost target

SPDK vhost target主流的I/O设备虚拟化的方案1.virtio2.vhost加速1&#xff09;QEMU virtio-scsiQemu 架构2&#xff09;Kernel vhost-scsi3&#xff09;SPDK vhost-user-scsi3.SPDK vhost-scsi加速4.SPDK vhost-NVMe加速主流的I/O设备虚拟化的方案 纯软件模拟&#xff1a;完全…