前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring boot与Spring cloud 是什么关系?

Spring boot与Spring cloud 是什么关系?

作者头像
格姗知识圈
发布2019-08-18 14:32:21
8490
发布2019-08-18 14:32:21
举报
文章被收录于专栏:格姗知识圈格姗知识圈

最近有两张图快被我用烂了,但是在这里不得不再用一次。这两张图都来自(http://spring.io)首页!

先看第一张图

Spring Boot是build anything。Anything包含很多,其中就包含右侧的Spring Cloud和再右侧的Spring Cloud Data Flow。

Spring Cloud是Coordinate Anything。下面写的:Built directly on Spring Boot's innovative approach to enterprise Java。

我们看一下Spring Cloud文档怎么说的:

Cloud Native is a style of application development that... Many of those features are covered by Spring Boot, on which Spring Cloud builds. 我翻译一下: Cloud Native是一种应用程序开发风格... Cloud Native风格所体现的大部分特性都已经被Spring Boot涵盖了,而且Spring Cloud正是构建于Spring Boot之上的。

我们再看第二张图

Spring Cloud包含API Gateway、Config Server,Service Registry,多个MicroServices...

例如写一个Gateway:

代码语言:javascript
复制
@RestController
@SpringBootApplication
public class GatewaySampleApplication {
    @Value("${remote.home}")
    private URI home;
    @GetMapping("/test")
    public ResponseEntity<?> proxy(ProxyExchange<byte[]> proxy) throws Exception {
        return proxy.uri(home.toString() + "/image/png").get();
    }
}

例如写一个Config Server:

代码语言:javascript
复制
@SpringBootApplication
@EnableConfigServer
public class ConfigServer {
  public static void main(String[] args) {
    SpringApplication.run(ConfigServer.class, args);
  }
}

例如写一个Eureka Server(Service Registry):

代码语言:javascript
复制
@SpringBootApplication
@EnableEurekaServer
public class Application {
    public static void main(String[] args) {
        new SpringApplicationBuilder(Application.class).web(true).run(args);
    }
}

例如要用Hystrix:

代码语言:javascript
复制
@SpringBootApplication
@EnableCircuitBreaker
public class Application {
    public static void main(String[] args) {
        new SpringApplicationBuilder(Application.class).web(true).run(args);
    }
}

例如要用Feign:

代码语言:javascript
复制
@SpringBootApplication
@EnableFeignClients
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

单个的MicroService就更不用说了:

代码语言:javascript
复制
@SpringBootApplication
@RestController
public class Application {
    @RequestMapping("/")
    public String home() {
        return "Hello world";
    }

    public static void main(String[] args) {
        new SpringApplicationBuilder(Application.class).web(true).run(args);
    }
}

发现了吗?他们都是@SpringBootApplication。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 格姗知识圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 先看第一张图
  • 我们再看第二张图
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档