关闭

在idea环境下构建springCloud

标签: springidea
7563人阅读 评论(5) 收藏 举报
分类:

springCloud是基于springboot搭建的微服务。

spring cloud官方文档:http://projects.spring.io/spring-cloud/

spring cloud 中文网 : https://springcloud.cc/

最终搭建后的工程源代码:https://github.com/onpwerb/SpringCloud


一、新建maven工程

根据spring cloud官方文档,在pom.xml导入如下代码

<!-- spring cloud 配置 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.5.RELEASE</version>
    </parent>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Camden.SR6</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
        </dependency>

二、建立注册中心

新建名称为 discovery 的 module

1.在该module下的pom.xml导入如下配置:

<!-- @EnableEurekaServer -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-netflix-eureka-server</artifactId>
            <!--<version>1.1.6.RELEASE</version>-->
        </dependency>
    </dependencies>

2.在src/main/java目录下新建discovery文件夹,然后新建一个application

package discovery;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer
public class DiscoveryApplicaion {
    public static void main(String[] args) {
        SpringApplication.run(DiscoveryApplicaion.class, args);
    }
}

3.在该module下的src/main/resources文件夹下,新建文件application.yml,配置注册中心eureka的相关服务

server:
  port: 8081
eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

三、构建一个服务A

新建一个名为service的module

1.在src/main/java目录下新建service文件夹,然后新建一个application

package service;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@EnableDiscoveryClient
@RestController
public class ServiceApplication {
    @GetMapping("/service")
    public String service(){
        return "service";
    }

    public static void main(String[] args) {
        SpringApplication.run(ServiceApplication.class, args);
    }
}

2.在该module下的src/main/resources文件夹下,新建文件application.yml

spring:
  application:
    name: service.service
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8081/eureka/
server:
  port: 8082

四、构建第二个服务B

新建一个名为service2的module

1.在src/main/java目录下新建service2文件夹,然后新建一个application

package service2;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@EnableDiscoveryClient
@RestController
public class Service2Application {
    @RequestMapping("/service2")
    public String service2(){
        return "service2";
    }

    public static void main(String[] args) {
        SpringApplication.run(Service2Application.class, args);
    }
}

2.在该module下的src/main/resources文件夹下,新建文件application.yml

spring:
  application:
    name: service2
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8081/eureka/
server:
  port: 8083

五、配置网关

新建名称为 gateway 的 module

1.在该module下的pom.xml导入如下配置:

package gateway;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;

@SpringBootApplication
@EnableZuulProxy
@EnableEurekaClient
public class GatewayApplication {
    public static void main(String[] args) {
        SpringApplication.run(GatewayApplication.class, args);
    }
}

2.在src/main/java目录下新建gateway文件夹,然后新建一个application

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8081/eureka/
spring:
  application:
    name: gateway
server:
  port: 8084
zuul:
  routes:
    service: /service/**
    service2: /service2/**

3.在该module下的src/main/resources文件夹下,新建文件application.yml

六、启动服务

先启动discovery模块,再启动其他模块

在浏览器依次输入:

http://localhost:8081/
http://localhost:8082/service
http://localhost:8083/service2
http://localhost:8084/service/service
http://localhost:8084/service2/service2
1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

使用IntelliJ IDEA中的Spring Initializr来快速构建Spring Boot/Cloud工程

我相信许多初学者都看了Spring Boot和Spring Cloud相关的博文中,都会涉及Spring Boot工程的创建的问题。而一般所看到的都是使用IntelliJ IDEA 工具来创建,并且方...
  • qq496013218
  • qq496013218
  • 2017-02-27 11:43
  • 5094

idea创建springcloud项目图文教程(创建服务提供者)(七)

前期条件,已经创建好注册中心,如果没有,请看上一篇http://blog.csdn.net/hcmony/article/details/77855158。 一,创建服务提供者 springcloud...
  • hcmony
  • hcmony
  • 2017-09-05 20:32
  • 1979

idea创建springcloud项目图文教程(EurekaServer注册中心)(六)

idea创建springcloud项目图文教程(EurekaServer注册中心)(六) 1,new -project 选择spring initializr 、 2,创建自己的包名,类名。 ...
  • hcmony
  • hcmony
  • 2017-09-05 19:33
  • 2664

idea创建springcloud项目图文教程(创建消费者)(八)

前期条件,已经创建好注册中心,如果没有,请看上一篇http://blog.csdn.net/hcmony/article/details/77855158。 一,创建服务提供者 springcloud...
  • hcmony
  • hcmony
  • 2017-09-05 20:35
  • 837

使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程

使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程 在之前的所有Spring Boot和Spring Cloud相关博文中,都会涉及Spr...
  • andyliulin
  • andyliulin
  • 2017-02-17 18:59
  • 1269

idea创建springcloud项目图文教程(Feign实现负载均衡)(九)

1,创建注册中心 http://blog.csdn.net/hcmony/article/details/77855158 2,创建服务提供者 http://blog.csdn.net/hcmony/...
  • hcmony
  • hcmony
  • 2017-09-05 20:49
  • 1546

使用SpringCloud实战微服务

使用SpringCloud实战微服务
  • ITTechnologyHome
  • ITTechnologyHome
  • 2017-06-28 00:43
  • 9875

SpringCloudConfig使用总结【分布式配置】

一:开发前准备: 1、搭建ZK       启动命令:zkServer.sh start 2、搭建Kafka或rabbitmq             kafka启动命令:...
  • u012727852
  • u012727852
  • 2017-12-11 19:24
  • 40

IDEA上面搭建一个SpringBoot的web-mvc项目

详情请点击 ----->>>http://blog.csdn.net/linzhiqiang0316/article/details/52589789
  • u013761206
  • u013761206
  • 2017-01-09 15:29
  • 1029

Spring Cloud 5分钟搭建教程(附上一个分布式日志系统项目作为参考)

1.前言: 1.1.以下内容是我通过阅读官方文档,并成功实践后的经验总结,希望能帮助你更快地理解和使用Spring Cloud.  1.2.默认读者已经熟练掌握Spring 全家桶,Spring Bo...
  • lc0817
  • lc0817
  • 2016-11-21 23:14
  • 21446
    个人资料
    • 访问:22873次
    • 积分:734
    • 等级:
    • 排名:千里之外
    • 原创:55篇
    • 转载:1篇
    • 译文:0篇
    • 评论:5条
    最新评论