一、父项目(tool)搭建

1、File->New->Project

idea搭建spring cloud项目-父子项目_java

2、选择maven,其他什么都不选择,直接next

idea搭建spring cloud项目-父子项目_springcloud_02

3、选择存储位置、输入groupId和ArtifactId,点击Finish

idea搭建spring cloud项目-父子项目_java_03

4、删除src目录

idea搭建spring cloud项目-父子项目_java_04

5、修改pom.xml文件,加入下面的代码

    <packaging>pom</packaging>
<description>
父工程 统一版本的控制 所有的工程都应该继承父工程
</description>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.2</version>
</parent>


<dependencies>
<!--fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.51</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>

<!--springcloud的版本控制-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2020.0.3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

6、父项目就搭建成功了,以后有公共的依赖可以放到父项目

二、子项目(spring-cloud-config)配置中心搭建

1、在父项目(tool)上右键,New->Module

idea搭建spring cloud项目-父子项目_springcloud_05

2、选择Spring Initializr,点击Next

idea搭建spring cloud项目-父子项目_springcloud_06

3、填写group、Artifact、选择java版本,Next

idea搭建spring cloud项目-父子项目_java_07

4、选择spring could config,勾选config server,Next

idea搭建spring cloud项目-父子项目_java_08

5、输入Module name,点击Finish

idea搭建spring cloud项目-父子项目_java_09

6、修改父项目pom.xml文件,加入子项目service-config-9000

    <modules>
<module>service-config-9000</module>
</modules>

idea搭建spring cloud项目-父子项目_java_10

7、修改service-config-9000的pom.xml文件,删除不必要的东西,留下

   <parent>
<groupId>com.tool.pc</groupId>
<artifactId>tool</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>

<artifactId>service-config-9000</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>service-config-9000</name>
<description>子项目spring-cloud-config</description>

<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
</dependencies>

idea搭建spring cloud项目-父子项目_springcloud_11

8、在启动类加上@EnableConfigServer

idea搭建spring cloud项目-父子项目_java_12

9、将application.properties修改为application.yml,并加入如下内容

server:
port: 9000 #服务端口
spring:
application:
name: service-config-9000 #应用名称
cloud:
config:
server:
native:
search-locations: classpath:/other #本地的配置文件路径
profiles:
active: native #本地配置文件必须开启本地环境

这里使用本地的配置文件,也可以修改为使用git地址的 在resources目录下新建一个文件夹other,用于统一存放配置文件

idea搭建spring cloud项目-父子项目_java_13

配置中心config就搭建好了

三、子项目注册中心(eureka)搭建

1、在父项目(tool)上右键,New->Module

idea搭建spring cloud项目-父子项目_springcloud_14

2、选择Spring Initializr,点击Next

idea搭建spring cloud项目-父子项目_springcloud_15

3、填写group、Artifact、选择java版本,Next

idea搭建spring cloud项目-父子项目_springcloud_16

4、选择spring cloud discovery,勾选eureka server,点击Next

idea搭建spring cloud项目-父子项目_java_17

5、默认,点击Finish

idea搭建spring cloud项目-父子项目_springcloud_18

6、修改父项目pom.xml文件,加入module(service-eureka-9001)

idea搭建spring cloud项目-父子项目_java_19

7、修改eureka的pom.xml,删除无用的东西

    <parent>
<groupId>com.tool.pc</groupId>
<artifactId>tool</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>

<artifactId>service-eureka-9000</artifactId>

<description>eureka注册中心</description>

<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>

8、在配置中心config下的other文件夹新建两个yml文件,如下

service-eureka-config.yml,注册中心的配置文件

server:
port: 9001

spring:
profiles: dev
application:
name: service-eureka-9001

eureka:
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl: #
defaultZone: http://127.0.0.1:9001/eureka/

common-config.yml,公共的配置文件,可以配置数据库地址、eureka服务地址等

eureka:
client:
service-url:
defaultZone: http://127.0.0.1:9001/eureka
instance:
prefer-ip-address: true

9、在注册中心新建bootstrap.yml文件

spring:
cloud:
config:
name: common-config,service-eureka-config
profile: dev #这个可以通过参数控制版本,也可以写死多个值,用逗号分隔
uri: http://127.0.0.1:9000/
label: dev

10、在启动类加上@EnableEurekaServer

idea搭建spring cloud项目-父子项目_java_20

四、子项目服务网关(gateway)搭建

1、在父项目(tool)上右键,New->Module

idea搭建spring cloud项目-父子项目_springcloud_21

2、选择Spring Initializr,点击Next

idea搭建spring cloud项目-父子项目_java_22

3、填写group、Artifact、选择java版本,Next

idea搭建spring cloud项目-父子项目_springcloud_23

4、选择spring cloud routing,勾选gateway

idea搭建spring cloud项目-父子项目_springcloud_24

5、默认

idea搭建spring cloud项目-父子项目_java_25

6、在父项目加入module

idea搭建spring cloud项目-父子项目_springcloud_26

7、修改gateway的pom.xml文件

    <parent>
<groupId>com.tool.pc</groupId>
<artifactId>tool</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>


<artifactId>service-gateway-9002</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>service-gateway-9002</name>
<description>服务网关</description>

<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>

</dependencies>

8、在配置中心(config)下新建文件service-gateway-config.yml

server:
port: 9002

spring:
profiles: dev
application:
name: service-gateway-9002

idea搭建spring cloud项目-父子项目_springcloud_27

9、在gateway下新建文件bootstrap.yml

spring:
cloud:
config:
name: common-config,service-gateway-config
profile: dev #这个可以通过参数控制版本,也可以写死多个值,用逗号分隔
uri: http://127.0.0.1:9000/
label: dev

10、在启动类加上@EnableEurekaClient

idea搭建spring cloud项目-父子项目_java_28

五、启动运行

依次启动config、eureka、gateway,看gateway是否注册到eureka

idea搭建spring cloud项目-父子项目_java_29