springboot2.0和springcloud Finchley版项目搭建(包含eureka,gateWay,Freign,Hystrix)

下面是详细的“springboot2.0和springcloud Finchley版项目搭建(包含eureka,gateWay,Feign,Hystrix)”攻略。

准备环境

首先,需要准备以下环境:

  • JDK 1.8及以上版本
  • Maven 3.5及以上版本
  • IntelliJ IDEA或者eclipse等IDE

创建Spring Boot项目

  1. 打开IntelliJ IDEA,选择New Project,然后选择Spring Initializr

  2. 创建一个Maven项目,选择Spring Boot 2.x版本,填写Group、Artifact、Packaging等信息

  3. 填写项目依赖,选择Eureka Discovery Server、Eureka Discovery Client、Spring Cloud Gateway、Feign和Hystrix等依赖

  4. 点击Next,选择项目名称和保存路径,然后创建项目

配置Eureka Server

  1. 在application.properties文件中加入Eureka Server的配置信息
# EurekaServer 配置
server.port=8761
eureka.instance.hostname=localhost
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
  1. 在启动类上添加@EnableEurekaServer注解,标识为Eureka Server
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication.class, args);
    }
}

配置Eureka Client

  1. 在application.properties文件中,加入Eureka Client的配置信息
# Eureka Client配置
spring.application.name=product-service
eureka.client.service-url.default-zone=http://localhost:8761/eureka/
  1. 在启动类上添加@EnableDiscoveryClient注解,标识为Eureka Client
@SpringBootApplication
@EnableDiscoveryClient
public class ProductServiceApplication {
    public static void main(String[] args) {
        SpringApplication.run(ProductServiceApplication.class, args);
    }
}

配置Spring Cloud Gateway

  1. 在application.properties文件中,加入Spring Cloud Gateway的配置信息
# Gateway 配置
server.port=8080
spring.cloud.gateway.routes[0].id=product-service
spring.cloud.gateway.routes[0].uri=lb://product-service
spring.cloud.gateway.routes[0].predicates[0]=Path=/**
  1. 在启动类上添加@EnableEurekaClient注解
@SpringBootApplication
@EnableDiscoveryClient
public class ApiGatewayApplication {
    public static void main(String[] args) {
        SpringApplication.run(ApiGatewayApplication.class, args);
    }
}

配置Feign

  1. 在启动类上添加@EnableFeignClients注解
@SpringBootApplication
@EnableFeignClients
public class OrderServiceApplication {
    public static void main(String[] args) {
        SpringApplication.run(OrderServiceApplication.class, args);
    }
}
  1. 创建Feign Client接口
@FeignClient(value = "product-service")
public interface ProductServiceClient {

    @GetMapping("/product/{id}")
    String getProductById(@PathVariable("id") Long id);
}

配置Hystrix

  1. 在启动类上添加@EnableCircuitBreaker注解
@SpringBootApplication
@EnableCircuitBreaker
@EnableFeignClients
public class UserServiceApplication {
    public static void main(String[] args) {
        SpringApplication.run(UserServiceApplication.class, args);
    }
}
  1. 在Feign Client接口中加入fallback属性:
@FeignClient(value = "product-service", fallback = ProductServiceClientFallback.class)
public interface ProductServiceClient {
    @GetMapping("/product/{id}")
    String getProductById(@PathVariable("id") Long id);
}
  1. 编写Hystrix回调类
@Component
public class ProductServiceClientFallback implements ProductServiceClient {
    @Override
    public String getProductById(Long id) {
        return "product fallback";
    }
}

示例

  1. 创建Product Service服务

  2. 创建User Service服务

  3. 创建Order Service服务,通过Feign调用ProductService

这样,经过以上几个步骤,我们就基本上完成了Spring Boot与Spring Cloud的整合了。在项目中,我们还可以通过Swagger UI工具为项目提供API文档,在项目中使用mybatis-plus等ORM框架操作数据库,使用Redis等缓存工具,对于微服务架构,我们还可以配合Docker等容器技术来进行管理和部署。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot2.0和springcloud Finchley版项目搭建(包含eureka,gateWay,Freign,Hystrix) - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • 高价值Java多线程面试题分析

    高价值Java多线程面试题分析攻略 1. 多线程基础知识 在面试过程中,多线程基础知识往往是被考查的重点。这里列举一些常见的面试题: 如何创建线程? 线程的状态有哪些? 线程安全是什么? synchronized和ReentrantLock的区别? wait()和sleep()的区别? volatile关键字的作用? 对于这些问题,我们要明确掌握线程的基本概…

    Java 2023年5月19日
    00
  • Spring5源码解析之Spring中的异步和计划任务

    下面是Spring5源码解析之Spring中的异步和计划任务的完整攻略。 异步任务 定义 Spring中使用异步任务来提高应用程序的性能和效率。异步任务是指不需要等待当前任务完成就能直接执行下一个任务的操作方式。Spring中的异步任务可以通过在方法上添加@Async注解来实现。 配置 在Spring中开启异步任务非常简单,只需要在配置文件(比如applic…

    Java 2023年5月19日
    00
  • Java加密技术的作用是什么?

    Java加密技术的作用 Java加密技术的主要作用是保障数据的安全性,对敏感信息进行加密后再传输和存储,提高数据的安全性和可靠性。Java中提供了多种加密技术,包括对称加密和非对称加密,以及数字签名等技术,这些技术可以用来实现数据的加密、签名和认证等功能。 加密技术的分类 对称加密技术:使用同一个密钥进行加密和解密,加密和解密的速度比较快,但是安全性比较差。…

    Java 2023年5月11日
    00
  • Java前后端的JSON传输方式(前后端JSON格式转换)

    下面是针对Java前后端的JSON传输方式以及前后端JSON格式转换的完整攻略。 一、JSON格式简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON格式常用于Web应用程序之间的数据传输。 1.1 JSON格式规则 在JSON中,数据格式采用键值对的形式,键值…

    Java 2023年5月26日
    00
  • Spring Boot 整合持久层之MyBatis

    Spring Boot 整合持久层之MyBatis 介绍 在Spring Boot中,我们可以通过整合MyBatis,来实现对数据库的访问。本篇文章将会介绍如何使用Spring Boot来整合MyBatis,完成对数据库的访问。 第一步:配置pom.xml文件 在我们的应用中配置MyBatis,需要添加以下依赖: <dependency> &lt…

    Java 2023年5月19日
    00
  • java Lombok之@Accessors用法及说明

    Java Lombok之@Accessors用法及说明 概述 Lombok是Java对象的库,通过注解的形式简化了对象的创建及Getter和Setter方法的定义等繁琐操作。其中,@Accessors注解是Lombok中提供的方便生成链式方法的注解。 @Accessors注解的使用 @Accessors注解有下列常用属性: fluent:若为true,则生成…

    Java 2023年5月26日
    00
  • SpringBoot整合mybatis简单案例过程解析

    下面是Spring Boot整合MyBatis的攻略过程,包含两条示例: 一、创建Spring Boot项目 首先,我们需要创建一个Spring Boot项目,可以使用IDEA直接创建,也可以使用Spring Initializr创建。 使用Spring Initializr创建项目时,需要勾选Web、MyBatis和MySQL等必要的依赖。创建完成后,项目…

    Java 2023年5月20日
    00
  • Java ConcurrentModificationException异常解决案例详解

    为了解决“Java ConcurrentModificationException异常”,我们需要从以下几个方面入手:原因分析、解决方法和代码示例。 原因分析 Java ConcurrentModificationException 异常通常发生在多个线程操作同一集合对象的时候。在一个线程正在读取该集合的同时,另一个线程修改了该集合,导致第一个线程遍历时出现…

    Java 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部