Spring Boot 概述

作者: 玩命有人疼 | 来源:发表于2018-07-01 13:25 被阅读485次

    前言

    前言部分主要是介绍一下我的现状,没有兴趣的小伙伴可以直接跳过。

    我现在就职于一家互联网金融公司,业务范围包括证券、期货、基金、信托、保险、银行、交易所、私募等,我所在部门主要为证券公司等做风控相关的产品。我在该公司工作一年,整体工作环境、氛围我感觉还是蛮不错的,我所在的部门小组主要是负责业务产品,主要偏重于业务,对技术要求相对较低,所以我对Spring、Spring Boot、Mybatis等技术也一直停留于会简单使用,而我更加想专注于技术,所以想在这里和大家一起学习Spring Boot以及相关的知识,希望能和大家共勉,一起进步。

    注:本次文章为Spring Boot系列文章,内容为本人学习体会,如有错漏之处,敬请指正,我一定虚心学习,希望大家一起进步,加油!

    微服务架构概述

    要想了解Spring Boot的产生,就需要知道Spring Cloud以及微服务的产生,所以先简单谈一下微服务。

    微服务的概念是由martin fowler在自己的个人博客中提出,我们对其文章重要部分进行说明:

    In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.

    简单来说,微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源API)。这些服务围绕业务能力构建并且可通过全自动部署机制独立部署。这些服务共用一个最小型的集中式的管理,服务可用不同的语言开发,使用不同的数据存储技术

    martin fowler 个人博客地址:https://martinfowler.com/

    martin fowler 个人博客微服务论文地址:https://martinfowler.com/articles/microservices.html

    martin fowler 博客微服务论文中文地址:http://blog.cuicc.com/blog/2015/07/22/microservices/

    Spring Cloud概述

    Spring Cloud是一系列框架的集合,利用Spring Boot快速开发出小型服务,通过Spring Cloud的一系列技术,通过Spring Cloud将这些小型服务进行互联互调,从而构成面向用户的应用系统。Spring Cloud的系列技术组合,正是微服务一种技术实现的落地。Spring Cloud重要的功能包括:服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。这些功能可以用Spring Boot的开发风格可以做到一键启动和部署。下面借官方的一张图,简单聊一下分布式架构以及Spring Cloud技术的实现。

    分布式架构简图

    首先是IoT、mobile、browser即不同平台发送请求有 API Gateway(网关) 统一进行拦截分发至各个微服务,网关在Spring Cloud可以使用zuul技术进行实现,breaker dashboard (熔断监控),即对服务进行熔断、降级、监控等,Spring Cloud可以使用Hystrix断路器技术进行实现,下方是config dashboard(配置中心)可以使用SpringCloud Config技术进行实现,然后是一组microservice(微服务),可以使用SpringBoot进行快速构建, service registry(服务注册)可以使用Eureka进行服务注册于发现,distributed tracing(分布式链路跟踪)可以使用SpringCloud Sleuth进行实现等等。

    Spring Boot概述

    经过前面对微服务架构、Spring Cloud的简单了解,我们可以知道Spring Boot的目的在于快速开发出微服务。Spring Boot是一个依赖于Spring的框架,整个依赖关系如下:Spring-->Spring Boot-->Spring Cloud,所以建议学习Spring Boot的同学最好有Spring的学习经验。Spring Boot 采用习惯优于配置的方式,帮我们配置好了许多常用的场景,这些场景可以通过一系列starter进行开启,这些场景启动器帮我们配置好了多数情况下的基本使用,有的的时候我们只需要依赖其即可,从而达到开箱即用,关于这些场景启动器都帮我们做了什么,我们后续章节进行详细讨论。在这里我们仅需知道Spring Boot是简化Spring应用开发的一个框架,整个Spring技术栈的一个大整合,J2EE开发的一站式解决方案,采用习惯优于配置的方式,帮我们默认配置了一些内容,从而可以是我们轻松使用即可,接下来我们聊一下SpringBoot的优缺点:

    优点:

    1. 入门简单

    2. 开发效率高

    3. 嵌入式Tomcat,Jetty容器,无需部署WAR包

    4. 无需代码生成及XML配置

    5. 可以配置不同环境的配置文件

    缺点:

    1. 深入学习比较困难

    2. 难以将现有的Spring项目转换为SpringBoot项目,适合全新的项目

    3. 依赖较新的java虚拟机

    相关文章

      网友评论

        本文标题:Spring Boot 概述

        本文链接:https://www.haomeiwen.com/subject/hxbcuftx.html