zoukankan      html  css  js  c++  java
  • idea快速搭建spring cloud-注册中心与注册

    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: 8000
    spring:
      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
    笔记2
    笔记3
    两个多线程的交替打印
    三个多线程的交替打印
    内部类
    基本反射了解
    键盘监听事件KeyListener
    焦点监听事件FocusListener
    文本框JTextField,密码框JPasswordField
  • 原文地址:https://www.cnblogs.com/itgaofei/p/9329375.html
Copyright © 2011-2022 走看看