阿里大牛教你,如何使用Spring Boot构建微服务

“微服务”用于描述软件体系结构设计,其中许多松散耦合的组件独立运行,但最终作为单个应用程序一起工作。服务通常关注于业务领域或业务实体的特定方面,它们通常使用网络进行通信。

这篇文章是一篇实践性的介绍性指南,介绍如何使用springboot和Netflix开发的软件来构建微服务,以回答这些问题。

Spring Cloud和Netflix OSS

Netflix成为最早采用微服务的公司之一,早在“微服务”一词获得任何吸引力之前,Netflix就已经将其单一的应用程序转变为一种水平可扩展的分布式体系结构。

多年来,作为Netflix开源软件中心(Netflix OSS)项目的一部分,Netflix已经开放了许多工具(他们继续在内部使用)。其中许多工具已经被Spring团队作为Spring Cloud项目的一部分采用,SpringCloud项目提供了一些工具来帮助开发人员在构建分布式系统时使用一些常见的模式。

示例项目

让我们设想一个简单的在线商店场景,在那里客户可以下订单。我们已经可以确定一些我们需要的服务-客户服务和订单服务。我们将一步一步地把每一个都建立起来。

注意:在这个演示中,我们将坚持使用Gradle和springboot2.2.0的Java项目。如果您愿意,可以随意使用Maven或其他受支持的语言。

客户服务

我们从 start.spring.io(https://start.spring.io/) 创建我们的客户服务项目。这通常是任何新的Spring启动应用程序的最佳起点。如果你看过springdeveloper倡导者和Java冠军joshlong的演讲,我建议你去看,你就会明白为什么这是互联网上第二好的地方!

创建一个带有customer-service的项目,只指定springweb作为依赖项,然后点击Generate下载它。下载并提取后,我们将创建一个 Customer 类用作域对象:

public class Customer {
    private final int id;
    private final String name;

    public Customer(final int id,  final String name) {
        this.id = id;
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }
}

然后,我们将添加一个 CustomerController 类,该类将公开几个端点,以允许我们按ID查看所有客户和单个客户:

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.Arrays;
import java.util.List;

@RestController
public class CustomerController {
    private List<Customer> customers = Arrays.asList(
            new Customer(1, "Joe Bloggs"),
            new Customer(2, "Jane Doe"));
    
    @GetMapping
    public List<Customer> getAllCustomers() {
        return customers;
    }
    
    @GetMapping("/{id}")
    public Customer getCustomerById(@PathVariable int id) {
        return customers.stream()
                        .filter(customer -> customer.getId() == id)
                        .findFirst()
                        .orElseThrow(IllegalArgumentException::new);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值