Java--IDEA创建多服务模块的SpringCloud微服务项目
Maven多模块项目通常由一个父模块和若干个子模块构成,每个模块都对应着一个pom.xml。它们之间通过继承和聚合(也称作多模块)相互关联。多模块适用于一些比较大的项目,通过合理的模块拆分,实现代码的复用,便于维护和管理。
一、创建Parent Project
1、基于IDEA 创建新的Maven 项目,选择菜单项File----->New---->Project
左侧选择Spring Initializr,默认使用Java 1.8 版本,因为是spring boot项目需要选择该选项,会自动添加相关的依赖包,然后点击Next 按钮
2、填写GroupId;ArtifactId,然后点击下一步Next
3、在Dependencies 依赖窗口,作用是在pom中自动添加一些依赖,在项目开始时就下载。可以根据需要进行选择,这里选择Spring Boot DevTools
SpringBoot与SpringCloud的版本需要对应,对应详细版本可参考如下链接:
http://www.macrozheng.com/#/cloud/springcloud
https://blog.csdn.net/MinggeQingchun/article/details/111562916
4、得到一个标准的Spring boot 项目,该项目是作为一个Parent project存在的,直接删除src文件夹。
此处的父项目只做依赖管理,不需要编写代码。
5、修改pom.xml文件
<packaging> pom<packaging>:配置<packaging>pom</packaging>的意思是使用maven分模块管理,都会有一个父级项目,pom文件一个重要的属性就是packaging(打包类型),
一般来说所有的父级项目的packaging都为pom,packaging默认类型jar类型,如果不做配置,maven会将该项目打成jar包
<parent>:maven项目之间的继承关系通过<parent>元素表示
<modules>:对子项目的关联
<!--对子项目的关联-->
<modules>
<module>eureka-server</module>
<module>eureka-client</module>
</modules>
<!--maven项目之间的继承关系通过<parent>元素表示。这里使用的开发框架是spring boot,默认继承spring-boot-starter-parent-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.myjava.cloud</groupId>
<artifactId>springcloud-learning</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springcloud-learning</name>
<description>Demo project for Spring Boot</description>
<!--配置<packaging>pom</packaging>的意思是使用maven分模块管理,都会有一个父级项目,pom文件一个重要的属性就是packaging(打包类型),
一般来说所有的父级项目的packaging都为pom,packaging默认类型jar类型,如果不做配置,maven会将该项目打成jar包-->
<packaging>pom</packaging>
二、Eureka 注册中心模块(Module)
1、右键点击项目,选择New---->Module菜单项
2、左侧选择Maven,勾选Create from archetype ,选择 org.apache.maven.archetypes:maven-archetype-quickstart 项目类型
3、输入模块名字,以及GroupId 继承自父项目,ArtifactId
4、选择需要的SpringCloud组件进行创建
5、创建完成之后,对自动生成的App 类进行rename 操作,如下图所示,更新为EurekaServerApplication
6、对启动类添加注解
//EurekaServer 本身就是个 Springboot 微服务, 所以它有 @SpringBootApplication 注解
@SpringBootApplication
//@EnableEurekaServer 表示这是个 EurekaServer
@EnableEurekaServer
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
7、子项目pom.xml 文件,增加 spring-cloud-starter-netflix-eureka-server jar 包
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
8、配置文件application.yml中添加Eureka注册中心的配置
server:
port: 8001 #指定运行端口
spring:
application:
name: eureka-server #指定服务名称
eureka:
instance:
hostname: localhost #指定主机地址
client:
fetch-registry: false #指定是否要从注册中心获取服务(注册中心不需要开启)
register-with-eureka: false #指定是否要注册到注册中心(注册中心不需要开启)
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
server:
enable-self-preservation: false #关闭保护模式
注:Eureka的常用配置
eureka:
client: #eureka客户端配置
register-with-eureka: true #是否将自己注册到eureka服务端上去
fetch-registry: true #是否获取eureka服务端上注册的服务列表
service-url:
defaultZone: http://localhost:8001/eureka/ # 指定注册中心地址
enabled: true # 启用eureka客户端
registry-fetch-interval-seconds: 30 #定义去eureka服务端获取服务列表的时间间隔
instance: #eureka客户端实例配置
lease-renewal-interval-in-seconds: 30 #定义服务多久去注册中心续约
lease-expiration-duration-in-seconds: 90 #定义服务多久不去续约认为服务失效
metadata-map:
zone: jiangsu #所在区域
hostname: localhost #服务主机名称
prefer-ip-address: false #是否优先使用ip来作为主机名
server: #eureka服务端配置
enable-self-preservation: false #关闭eureka服务端的保护机制
9、启动运行 EurekaServerApplication,访问地址http://127.0.0.1:8001/
可参考http://www.360doc.com/showweb/0/0/953061579.aspx
本文地址:https://blog.csdn.net/MinggeQingchun/article/details/111594699