springcloud gradle 用idea搭建

搭建项目

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

搭建根项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
按照截图来,先建立一个根项目

建立子项目

先建立服务注册中心eueka

在这里插入图片描述
点击自己的项目右键 创建module
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
记得点击enable auto-import自动导包
在这里插入图片描述
在enueka gradle 写入下面这个配置导入相关包 (注意
group ‘com.rainteas’
version ‘1.0-SNAPSHOT’) 不要改

这是build.gradle

plugins {
    id 'org.springframework.boot' version '2.1.3.RELEASE'
    id 'java'
}
apply plugin: 'io.spring.dependency-management'

group 'com.rainteas'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}
ext {
    set('springCloudVersion', 'Greenwich.SR1')
}
dependencies {
    implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-server'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testCompile group: 'junit', name: 'junit', version: '4.12'
}
dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
    }
}

根据前几个步骤 再添加一个网关管理 gateway 如图

在这里插入图片描述
build.gradle 配置文件

plugins {
    id 'org.springframework.boot' version '2.1.3.RELEASE'
    id 'java'
}
apply plugin: 'io.spring.dependency-management'

group 'com.rainteas'
version '1.0-SNAPSHOT'


sourceCompatibility = 1.8

repositories {
    mavenCentral()
}
ext {
    set('springCloudVersion', 'Greenwich.SR1')
}
dependencies {
    implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-server'
    implementation 'org.springframework.cloud:spring-cloud-starter-netflix-zuul'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testCompile group: 'junit', name: 'junit', version: '4.12'
}
dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
    }
}

建立user 消费者如图

在这里插入图片描述
build.gradle

plugins {
    id 'org.springframework.boot' version '2.1.3.RELEASE'
    id 'java'
}

group 'com.rainteas'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}
ext {
    set('springCloudVersion', 'Greenwich.SR1')
}
dependencies {
    implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-server'
    implementation 'org.springframework.cloud:spring-cloud-starter-openfeign:2.0.2.RELEASE'
    compileOnly 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testCompile group: 'junit', name: 'junit', version: '4.12'
}
dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
    }
}

配置eureka

自己创建一个application.yml 将这个写进去
在这里插入图片描述

server:
  port: 8762
eureka:
  client:
    #表明自己属于服务中心主体
    registerWithEureka: false #是否将自身注册
    fetchRegistry: false  #表示自己就是服务注册中心,我的职责就是为父服务实例,并不需要去检索服务
  server:
    enable-self-preservation: false

配置gateway

同上 建立一个application.yml

spring:
  application:
    name: test-gateway

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8762/eureka
  instance:
    instance-id: test-gateway #自定义服务名称信息
    prefer-ip-address: true #访问路径可以显示ip地址 #注册服务使用ip地址

server:
  port: 8080

zuul:
  routes:
    testProject:
      path: /testShop/**
      serviceId: test-shop
    testUser:
      path: /testUser/**
      serviceId: test-user

配置消费者 user

同上

spring:
  application:
    name: test-user

server:
  port: 8081
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8762/eureka

注意以上application 名字,由于我是做教程(用了2份做的),有几个spring.application.name 不太一样,例如test-user 和user 改成一样的

开启enreka

在这里插入图片描述

开启网关和enueka

在这里插入图片描述

消费者

在这里插入图片描述
这样就完成了 下面是例子 testShop是网关,后面是方法地址
http://localhost:8080/testShop/shophello

两个服务进行通信

在这里插入图片描述
先写一个接口

把projectService 注入进去
在这里插入图片描述
然后直接调用即可
在这里插入图片描述