什么是Spring Cloud

2019-04-28 22:20|来源: 网路

Spring是一个用于在Java语言中开发Web应用程序的平台。 它于2004年首次推出。2006年,Spring的很多子项目跟着诞生。 每个子项目都侧重于不同的领域。 到目前为止,您可以看到常见的子项目如下图所示-

Spring IO(Spring Integration Objects)是用于Spring子项目族的名称。 它被认为是一个伞,子项目位于这样的伞下面。
Spring Cloud是一个位于Spring IO Umbrella中的子项目,它本身就是一把主伞和一个副伞。

Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁定,领导选举,分布式 会话,集群状态)。 分布式系统的协调导致锅炉板模式,使用Spring Cloud开发人员可以快速站起来实现这些模式的服务和应用程序。 它们适用于任何分布式环境,包括开发人员自己的笔记本电脑,裸机数据中心和Cloud Foundry等托管平台。

以下是Spring Cloud中的子项目和模式列表:

所有Spring Cloud项目都应该由Spring Boot创建,因为Spring Boot是为了帮助开发人员更轻松地使用Spring Framework构建项目。 如果要开发基于Spring Framework的核心Spring Cloud应用程序将非常困难。
因此,要创建Spring Cloud应用程序,您需要创建一个Spring Boot项目。 并声明所需的依赖项。

声明Spring Boot Parent:

<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent -->

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies -->
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <spring-cloud.version>Edgware.RELEASE</spring-cloud.version>
</properties>

...

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>


声明依赖项:

<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-eureka -->
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-eureka-server -->

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-...</artifactId>
</dependency>

<!--
  spring-cloud-starter-eureka
  spring-cloud-starter-eureka-server
  ...
-->

相关问答

更多
  • Spring Cloud的子项目,大致可分成两类,一类是对现有成熟框架”Spring Boot化”的封装和抽象,也是数量最多的项目;第二类是开发了一部分分布式系统的基础设施的实现,如Spring Cloud Stream扮演的就是kafka, ActiveMQ这样的角色。对于我们想快速实践微服务的开发者来说,第一类子项目就已经足够使用,如: Spring Cloud Netflix 是对Netflix开发的一套分布式服务框架的封装,包括服务的发现和注册,负载均衡、断路器、REST客户端、请求路由等。 Spr ...
  • Spring Cloud项目的既定目标在于为Spring开发人员提供一整套易于使用的工具集,从而保证其轻松构建起自己需要的分布式系统方案。为了实现这一目标,Spring Cloud以Netflix OSS堆栈为基础将大量实现堆栈加以整合并打包。这些堆栈而后可以通过大家所熟知的各类基于注释的配置工具、Java配置工具以及基于模板的编程工具实现交付。下面就让我们一起了解Spring Cloud当中的几类常见组件。 Spring Cloud Config Server Spring Cloud Config Se ...
  • spring
  • 经过一些研究,我找到了一条路。 您应该在注入AmazonSQS实例后设置端点,以覆盖已设置的端点,如下所示: @Autowired public void setAmazonSqs(AmazonSQS amazonSqs) { this.amazonSqs = amazonSqs; // use elasticMQ if spring default profile is used; no active profiles if (environment.getActiveProfi ...
  • 你甚至不需要@StreamListener注解来从活页夹接收数据。 只需为您的@EnableBinding(Processor.class)提供@EnableBinding(Processor.class)并注入一个bean,如下所示: @Autowired @Qualifier(Processor.INPUT) private MessageChannel inputChannel; 并手动订阅它。 或者您可以使用任何Spring Integration方法来订阅该MessageChannel ,例如: ...
  • CloudFoundry的开源PaaS(github.com/cloudfoundry)。 它将堆栈商品化 - 也就是说,实际上,使数据库(MySQL,PostgreSQL,Redis,MongoDB),消息传递(RabbitMQ)和Web服务器(Tomcat)快速启动并运行变得非常简单。 尽管像AWS这样的云可让您启动CPU和硬盘以及库存操作系统安装,但像CloudFoundry这样的PaaS可让您启用基础架构,如消息代理,数据库以及Web服务器和路由器。 所以,是的,它取代了服务器(或者更重要的是,它可 ...
  • Spring Cloud用于开发分布式系统中的一些常见模式。 Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁定,领导选举,分布式会话,集群状态) Spring Cloud 对于Spring Boot和Spring MVC,请参阅spring-mvc-and-spring-boot之间的这个很好的答案差异 Spring Cloud is for developing some of the comm ...
  • 我建议您使用静态文件配置进行开发。如果bootstrap.yml中指定的路径已关闭,那么您将获得PropertyPlaceHolder异常。 对于生产,您可以在github中配置所有配置文件,并且可以在bootstrap.yml中配置git uri。 请阅读本文以获得更多说明,很明显您也可以在这里找到与spring-cloud相关的所有问题。 I would suggest you to go with static file configuration for development.If the pat ...