欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java--IDEA创建多服务模块的SpringCloud微服务项目

程序员文章站 2023-10-28 17:03:52
Maven多模块项目通常由一个父模块和若干个子模块构成,每个模块都对应着一个pom.xml。它们之间通过继承和聚合(也称作多模块)相互关联。多模块适用于一些比较大的项目,通过合理的模块拆分,实现代码的复用,便于维护和管理。一、创建Parent Project1、基于IDEA 创建新的Maven 项目,选择菜单项File----->New---->Project左侧选择Spring Initializr,默认使用Java 1.8 版本,因为是spring boot项目需要选择该选项,会...

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

一、创建Parent Project

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

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

Java--IDEA创建多服务模块的SpringCloud微服务项目

2、填写GroupId;ArtifactId,然后点击下一步Next

Java--IDEA创建多服务模块的SpringCloud微服务项目

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

SpringBoot与SpringCloud的版本需要对应,对应详细版本可参考如下链接:

http://www.macrozheng.com/#/cloud/springcloud

https://blog.csdn.net/MinggeQingchun/article/details/111562916

Java--IDEA创建多服务模块的SpringCloud微服务项目

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 项目类型

Java--IDEA创建多服务模块的SpringCloud微服务项目

3、输入模块名字,以及GroupId 继承自父项目,ArtifactId

Java--IDEA创建多服务模块的SpringCloud微服务项目

4、选择需要的SpringCloud组件进行创建

Java--IDEA创建多服务模块的SpringCloud微服务项目

5、创建完成之后,对自动生成的App 类进行rename 操作,如下图所示,更新为EurekaServerApplication

Java--IDEA创建多服务模块的SpringCloud微服务项目

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/

Java--IDEA创建多服务模块的SpringCloud微服务项目

 

可参考http://www.360doc.com/showweb/0/0/953061579.aspx

本文地址:https://blog.csdn.net/MinggeQingchun/article/details/111594699