【微服务 从0开始 】Spring Cloud 简单搭建一个微服务项目

发布时间:2022-06-20 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了【微服务 从0开始 】Spring Cloud 简单搭建一个微服务项目脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

【微服务 从0开始 】Spring Cloud 简单搭建一个微服务项目

🔎这里是【秒懂·原生】,关注我学习云原生不迷路 👍如果对你有帮助,给博主一个免费的点赞以示鼓励 欢迎各位🔎点赞👍评论收藏⭐️

👀专栏介绍

【秒懂·云原生】 目前主要更新微服务,一起学习一起进步。

👀本期介绍

主要介绍SPRing boot与Spring Cloud的关系,以及如何搭建一个微服务项目

文章目录

  • 👀专栏介绍
  • 👀本期介绍
  • Spring boot 介绍
    • Spring boot 与Spring Cloud
    • Spring boot 核心特性
  • 构建一个微服务
    • 一、IDEA生成
    • 二、lnITial生成

前言F1a;

工欲善其事,必先利其器。在对Spring Cloud各部分组件进行具体介绍之前,我们会对Spring Cloud微服务的基础Spring Boot进行介绍。Spring Boot是Spring一套快速配置开发的脚手架,可以基于Spring Boot快速集成开发单个Spring应用。

Spring Cloud是基于Spring Boot实现的云应用开发工具,很大一部分实现依赖于SpringBoot。可以说Spring Boot是整个Spring Cloud微服务架构的服务基础。

Spring boot 介绍

在构建第一个微服务之前,我们先了解一下Spring boot

Spring框架功能很强大,但是就算是一个很简单的项目,开发者也需要进行大量的配置工作,因此在Spring 4.0之后出现了Spring Boot框架,它的作用很简单,就是帮助开发者自动配置Spring的相关依赖。Spring Boot是Pivotal团队于2013年推出的全新项目,主要用来简化Spring开发框架的开发、配置、调试和部署工作,同时在项目内集成了大量易于使用且实用的基础框架。Spring Boot使用了特殊的方式来进行初始化配置,这使得开发者不需要额外定义样板化的配置。

Spring boot 与Spring Cloud

Spring Cloud基于Spring Boot框架开发应用,为微服务开发中的架构问题提供了一整套的解决方案:如服务注册与发现、服务消费、服务容错、API网关、分布式调用追踪和分布式配置管理等。 Spring Cloud与Spring Boot的联系如下:

  • Spring Boot是Spring的一套快速配置脚手架,可以基于Spring Boot快速开发单个服务,Spring Cloud是一个基于Spring Boot实现的云应用开发工具。
  • Spring Boot专注于快速、方便集成单个服务,Spring Cloud是关注全局的服务治理框架。
  • Spring Boot使用了约定优先于配置的理念,有很多集成方案已经设置好,减少了用户的配置,Spring Cloud很大一部分是基于Spring Boot实现的。
  • Spring Boot可以离开Spring Cloud独立使用开发项目,但是Spring Cloud离不开Spring Boot,属于依赖与被依赖的关系。

Spring boot 核心特性

从本质上来讲,Spring Boot是一个框架中的框架,它专注于框架的整合,让基础的框架能够更好地集成使用。它简化了集成过程中的模板化配置,提供了本应该由开发者自身去实现的Spring Bean配置,从而使开发者能够从繁琐的配置中解放出来,更专注于应用程序的业务逻辑。 SpringBoot所具备以下特性:

  • SpringApplication:提供一种简便的方式来引导启动Spring应用程序,通过main的方式启动应用。
  • 外部化配置(External configuration):通过外部化配置的方式,可以让开发者自定义相关配置以使相同的应用运行于不同的环境中。
  • Profiles: Spring Profiles可以将配置文件隔离成不同的模块,并且使这些模块中的配置只在特定的环境中生效
  • 日志(LOGging) : Spring Boot完善的日志系统更利于开发者调试和监控应用程序。·MVC: Spring Web MVC框架,使得开发者得心应手地搭建Web后端应用。
  • 嵌入式容器(Embedded Containers):支持内置的Tomcat、Jetty和Undertow服务器,使得应用程序通过内嵌的服务器容器一键启动。
  • SQL:提供了使用SQL数据库的广泛支持,从直接通过JDBC(JdbcTemplate)访问数据库到通过对象关系映射框架(如Hibernate)访问数据库等等
  • NoSQL:集成了大量的框架来提供使用NoSQL数据库的技,支持redis、MongoDB、neo4j、ElasticseArch、Solr Cassandra、Couchbase和LDAP等诸多NoSQL数据库,这些NoSQL数据库的使用都可以由Spring Boot提供相关的自动配置实现。
  • 消息系统(Message)︰提供了对消息系统的广泛支持,包括JMS、RabbitMQ.Kafka和WebSocket等。
  • 测试(testing)︰提供了一系列实用工具和注解,以帮助开发者测试应用程序。
  • 自动配置(Auto-Configuration):自动配置不仅减少了Spring框架中本该由开发者自主实现Bean相关配置,也使得开发者具备根据自己的业务需要为应用程序定义各种特定Bean的能力。
  • 监控(Monitoring) : Spring Boot的监控能够使开发者更好地掌控应用程序的运行状态。

构建一个微服务

也就是搭建一个Spring boot 项目,接下来介绍两种搭建Spring boot项目的流程。

一、IDEA生成

使用IDEA生成项目的主要过程如下:

1、Spring Initializer创建项目。

【微服务 从0开始 】Spring Cloud 简单搭建一个微服务项目

2、设置项目的基本信息。 如图所示,可以设置创建项目的包名、Group的Id、Artifact的ld和Java的版本等信息。

【微服务 从0开始 】Spring Cloud 简单搭建一个微服务项目

3、添加依赖。 用于添加Spring Boot的依赖。 这里依赖随便添加几个基本的就行

【微服务 从0开始 】Spring Cloud 简单搭建一个微服务项目

4、Spring boot项目就建好了

【微服务 从0开始 】Spring Cloud 简单搭建一个微服务项目

4)启动类与控制类。 启动类和控制类的代码如下所示:

【微服务 从0开始 】Spring Cloud 简单搭建一个微服务项目

解释一下这两个注解:

SpringMVC中使用了3个注解作用于Chapter3BootDemoApplication类,分别是@Configuration (2.0.0版本中添加了@SpringBootConfiguration注解来代替Spring的标准配置注解@Configuration) .@EnableAutoConfiguration和 @componentScan。SpringBoot提供了一个统一的注解@SpringBootApplication,默认属性下等于上述3个注解。

@RestController组合了@Controller和@ResponseBody注解,表明该类可以处理HTTP请求,并且返回JSON类型的响应。Spring lnitializer会自动为应用生成对应的启动类,一般以*Application方式进行命名。

6、添加端点。 在启动类中增加控制类的端点,暴露出/test的端点。所以在application.proPErties中设置服务器启动的端点,如下所示:

【微服务 从0开始 】Spring Cloud 简单搭建一个微服务项目

服务器会使用内置的Tomcat容器进行启动,服务器端口为8000。这样一个简单的Spring Boot Web应用就写好了,正常访问接口http://localhost:8000/test即可。

二、lnitial生成

如果不想使用IDEA的话,也可以在Spring官方网站https://start.spring.io/创建项目,再将创建好的项目下载到本地,解压之后导入到IDEA中。

1、创建项目。如图所示,填写Group的ld、Artifact的ld和项目依赖。添加项目依赖时,根据输入的关键字,会有下拉框选择提示。填好这些信息,就可以生成对应的项目。生成的项目会自动下载。

【微服务 从0开始 】Spring Cloud 简单搭建一个微服务项目

2、解压并导入项目。解压下载好的项目之后,会发现项目结构和IDEA中生成的一样如图所示,因为IDEA中调用的APIl接口是Spring官方的项目生成器接口。

【微服务 从0开始 】Spring Cloud 简单搭建一个微服务项目

脚本宝典总结

以上是脚本宝典为你收集整理的【微服务 从0开始 】Spring Cloud 简单搭建一个微服务项目全部内容,希望文章能够帮你解决【微服务 从0开始 】Spring Cloud 简单搭建一个微服务项目所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。