idea快速搭建spring cloud-注册中心与注册
2019-08-08

spring cloud快速搭建

  Spring Cloud是一个微服务框架,它基于spring boot, Spring Cloud提供的全套的分布式系统解决方案。 

  首先我们使用gradle来创建:

选择JDK以及勾选Java,然后下一步

起包名已经项目名,下一步:

选择我们本地的gradle包,一直下一步,点击build.gradle并添加我们的依赖:

group "com.gaofei"version "1.0-SNAPSHOT"//gradle使用的插件apply plugin: "java"//gradle使用spring-boot打包更方便apply plugin: "spring-boot"//jdk的版本号sourceCompatibility = 1.8//本项目的dependencies { testCompile group: "junit", name: "junit", version: "4.12"}//由于本次创建gradle未出现src,由以下代码来解决task "create-dirs" << { sourceSets*.java.srcDirs*.each { it.mkdirs() } sourcScts*.resources.srcDirs*.each{ it.midirs() }}//编译构建时的配置buildscript { ext{ springBootVersion="1.5.10.RELEASE" //springBootVersion是自己定义的变量 里面写的是springboot插件的版本 } repositories { maven{ url "http://maven.aliyun.com/nexus/content/groups/public/"} jcenter() mavenCentral() maven{ url "http://repo.spring.io/snapshot" } maven{ url "http://repo.spring.io/milestone" } maven{ url "http://repo.spring.io/release" } maven{ url "http://repo.spring.io/plugins-snapshot" } } dependencies{ classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")//指的是springboot的一个插件 }}//统一所有项目的配置 就是对所有的模块进行统一配置 所有以后的模块都不用再配置allprojects { group "com.gaofei" //分组 version "1.0-SNAPSHOT" //版本号 ext{ springCloudVersion="Edgware.SR2" } //所有项目都会引用的阿里云里的maven repositories { maven{ url "http://maven.aliyun.com/nexus/content/groups/public/"} jcenter() mavenCentral() maven{ url "http://repo.spring.io/snapshot" } maven{ url "http://repo.spring.io/milestone" } maven{ url "http://repo.spring.io/release" } maven{ url "http://repo.spring.io/plugins-snapshot" } }}//统一所有子项目的配置subprojects { apply plugin: "java" apply plugin: "idea" apply plugin: "spring-boot" dependencies { compile("org.springframework.boot:spring-boot-starter-web"){ //使用undertow来代替tomacat exclude module:"spring-boot-starter-tomcat" } //替代tomcat compile "org.springframework.boot:spring-boot-starter-undertow" //健康检查 compile "org.springframework.boot:spring-boot-starter-actuator" dependencies { testCompile group: "junit", name: "junit", version: "4.12" } } //版本控制插件 dependencyManagement{ imports{ mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}" } }}

通过注释可以看到各个代码块的作用,这里我们是用阿里云的仓库

接下来我们开始建eureka注册中心,通过new->Module再建gradle项目来创建

在build中添加eureka-server依赖

//表示自己是一个服务器 compile "org.springframework.cloud:spring-cloud-starter-eureka-server"

接下来在application.yml中配置

server: port: 8000spring: application: name: register-center #起个名字eureka: client: register-with-eureka: false #启动时不注册表明自己是一个注册中心 fetch-registry: false

启动类

@SpringBootApplication@EnableEurekaServer//表明自己是注册中心public class RegisterCenterProvider { public static void main(String[] args) { SpringApplication.run(RegisterCenterProvider.class,args); }}

启动:

这就表示注册中心启动成功

下面创建服务注册到服务中心

创建一个gradle module 项目 

在build.gradle中添加thymeleaf组件,eureka客户端组件的依赖

  //thymeleaf组件 compile "org.springframework.boot:spring-boot-starter-thymeleaf" //eureka客户端组件 compile "org.springframework.cloud:spring-cloud-starter-eureka"

在application.yml中配置:

server: port: 8001 spring: application: name: project-shopping-mall #注册在注册中心的名字,它会进行键值对映射url thymeleaf: cache: false #关闭缓存eureka: client: service-url: defaultZone: http://localhost:8000/eureka/ #注册到注册中心 instance: prefer-ip-address: true #用两种方式进行注册,一种是使用主机名注册,一种是使用ip地址进行注册,这里使用ip地址进行注册

启动类:

@SpringBootApplication@EnableDiscoveryClient //表示eureka客户端public class ShoppingMallProvider { public static void main(String[] args) { SpringApplication.run(ShoppingMallProvider.class,args); }}

启动:

成功!

下几篇会说一下spring cloud中使用的组件

, 1, 0, 9);