专业的JAVA编程教程与资源

网站首页 > java教程 正文

IntelliJ IDEA创建多服务模块的Spring Cloud微服务项目

temp10 2024-11-09 13:53:46 java教程 9 ℃ 0 评论

Maven多模块项目通常由一个父模块和若干个子模块构成,每个模块都对应着一个pom.xml。它们之间通过继承和聚合(也称作多模块)相互关联。多模块适用于一些比较大的项目,通过合理的模块拆分,实现代码的复用,便于维护和管理。


IntelliJ IDEA创建多服务模块的Spring Cloud微服务项目


一、创建Parent Project

基于IDEA 创建新的Maven 项目,选择菜单项File->New->Project。

左侧选择Spring Initializr,默认使用Java 1.8 版本,因为是spring boot项目需要选择该选项,会自动添加相关的依赖包,然后点击Next 按钮。


填写GroupId:com.rickie.midend;ArtifactId:smallerordercenter,然后点击下一步Next按钮。

GroupId和ArtifactId统称为“坐标”,是为了保证项目唯一性而提出的。GroupId是项目组织唯一的标识符,实际对应Java 包的结构,ArtifactID是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。GroupId一般分为多个段,一般第一段为域,第二段为公司名称。

举个apache公司的tomcat项目例子:这个项目的groupId是org.apache,它的域是org,公司名称是apache,artifactId是tomcat。包结构package最好是以groupId.artifactId 开头的。



在Dependencies 依赖窗口,作用是在pom中自动添加一些依赖,在项目开始时就下载。可以根据需要进行选择,这里选择Spring Boot DevTools。


得到一个标准的Spring boot 项目,因为该项目是作为一个Parent project存在的,可以直接删除src文件夹。

此处的父项目只做依赖管理,不需要编写代码。


然后,在pom 文件中,添加 <packaging> 打包类型。

另外,maven项目之间的继承关系通过<parent>元素表示。这里使用的开发框架是spring boot,默认继承spring-boot-starter-parent,下面的截图中有显示。

另外,还需要添加相应的Spring Cloud 依赖管理,本示例项目中引用了当前最新的Greenwich.SR2版本。



使用dependencyManagement管理依赖版本号

一般在项目最顶层的父pom中使用该元素,让所有子模块引用一个依赖而不用显式的列出版本号。maven会沿着父子层次向上走,直到找到一个拥有dependencyManagement元素的项目,然后它就会使用在这个dependencyManagement元素中指定的版本号。

<dependencyManagement>

<dependencies>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-dependencies</artifactId>

<version>Greenwich.SR2</version>

<type>pom</type>

<scope>import</scope>

</dependency>

</dependencies>

</dependencyManagement>

继承是maven中很强大的一种功能,继承可以使子pom获得parent中的各项配置,对子pom进行统一的配置和依赖管理。父pom中的大多数元素都能被子pom继承。



二、增加Eureka 注册中心模块(Module)

右键点击smallerordercenter项目,选择New/Module菜单项。


左侧选择Maven,右侧在Create from archetype 列表中,选择 maven-archetype-quickstart 项目类型。


GroupId 继承自父项目,ArtifactId 输入:oc-eureka,然后点击Next 按钮。


在接下来的窗口中,输入模块名称、存放路径等等,最后点击 Finish 按钮。


eureka 作为微服务的注册中心,创建完成之后,如下图所示。


接下来对自动生成的App 类进行rename 操作,如下图所示,更新为EurekaServerApplication。



然后,在该module应用的pom文件中,添加对Eureka组件的依赖包。

<dependencies>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>

</dependency>

</dependencies>

注意:在当前新版的Spring Boot 2.1.x中,spring-cloud-starter-netflix-xx 替换了原有的 spring-cloud-starter-xx。

父模块pom中使用dependencyManagement来管理的依赖,在子模块pom中就不需要再写版本号了,所以上面的依赖包中没有注明版本号。


最后,修改EurekaServerApplication 类,添加相应的注解,以及更新代码。


为了让上述Eureka 应用正常运行,还需要添加 application.yml 配置文件。

spring:

application:

name: sc-eureka-server

server:

port: 8761

eureka:

client:

service-url:

defaultZone: http://localhost:8761/eureka/

fetch-registry: false

register-with-eureka: false


现在,可以运行Eureka 应用,看看运行效果,访问http://localhost:8761。

如下是运行输出信息:


在浏览器中访问 http://localhost:8761,可以查看Eureka 注册中心的信息。


三、添加其他服务模块

可以按照上述类似的步骤,创建如下服务模块。

oc-gateway:微服务网关,作为应用入口。

oc-order-import:订单微服务模块,负责订单的导入。


我们把上图中无用的文件及文件夹删掉,包括HELP.md、mvnw、mvnw.cmd文件及.mvn文件夹,都在父项目中。


多模块项目中,父模块打包类型必须是pom,同时以给出所有的子模块,其中每个module,都是另外一个maven项目。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表