码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • spring技术体系的演进史


    目录

    spring

    spring boot

    spring boot 1.x

    spring boot 2.x

    spring boot 3.x

    spring cloud

    netflix oss

    熔断 Hystrix

    注册中心 eureka

    网关 zuul

    负载均衡 ribbon

    服务访问

    spring cloud alibaba

    注册中心 nacos

    熔断 sentinel

    消息队列 rocketmq

    升级问题


    spring

    最开始使用 spring 的时候,发现这个特别好用,最主要是把那些对象创建之前通过关键字 new 创建的方式把那些交给 spring ioc 容器来处理,其中 spring 还是使用了工厂模式来创建对应的对象。

    然而这个时候需要自己写一堆配置,可能是使用 spring 的开发人员感觉这些配置麻烦,就有了后面的 spring boot。

    spring boot

    spring boot 最大的好处自己把市面上很多开源组件整合了,对于各种组件使用的 jar 进行了版版本适配,预定了一些开源组件的配置,使用者通过引入对应的 starter 来引入对应的组件,项目在启动时扫描指定的类路径根据自动装配指定的类来匹配对应的配置。这样一来就是开发人员遵循 spring boot 定义的规则来使用对应的组件即可。然而对于一些自定义的一些配置可能预定义的配置不能满足要求,需要自己来实现。

    spring boot 1.x

    基于 spring 4.x,最开始的一版。在 maven 中央仓库得知,spring 4.0.0 发布于 2013-12-12,spring boot 1.0.0 发布于 2014-04-01,时间差距不到半年。

    spring boot 2.x

    spring boot 1.x 的升级版

    基于 spring 5.x,添加了 spring-webflux。侧重于响应式开发。在 maven 中央仓库得知,spring webflux 5.0.0 发布于 2017-09-28,spring boot 2.0.0 发布于 2018-03-01。

    spring boot 3.x

    源码基于 jdk 17 构建,即如果想使用这个版本,需要换 jdk 17。相对于 spring boot 2.x 的变化很大,其中如果使用 servlet 容器,包前缀由 javax 变为 jakarta。

    https://blog.csdn.net/zlpzlpzyd/article/details/130524514

    spring cloud

    整合了市面上的开源组件,其中为了整合这些组件,自己定义了一套规则,比如服务注册与发现

    其中重要的组件是

    spring cloud commons 和 spring cloud context

    https://spring.io/projects/spring-cloud-commons

    其中重要的功能是服务发现与注册功能的接口定义

    spring 官方的开发人员整合了当初正火的 netflix oss,oss 是 open source software 的简称

    netflix oss

    Netflix Open Source Software Center

    https://github.com/Netflix/

    广泛使用的组件

    熔断 Hystrix

    https://github.com/Netflix/Hystrix

    从 2018 年开始进入维护模式,即不再更新以及有新版本。官方推荐使用 resilience4j 代替 Hystrix,目前市场上使用的还有阿里开源的 sentinel。

    注册中心 eureka

    https://github.com/Netflix/eureka

    市场使用的还有consul、nacos

    网关 zuul

    https://github.com/Netflix/zuul

    spring 官方开发了一个网关

    https://spring.io/projects/spring-cloud-gateway

    在 maven 中央仓库得知,spring cloud gateway 1.0.0 发布于 2017-11-22,晚于 spring webflux 5.0.0 发布时间 2017-09-28。

    spring cloud gateway 在我接触的项目里用的多,基于 webflux 进行响应式开发。

    负载均衡 ribbon

    https://github.com/Netflix/ribbon

    现在也进入了维护模式,为此 spring cloud 单独开发了一个组件 spring-cloud-loadbalancer。

    服务访问

    最开始的名字是 feign

    1. <dependency>
    2. <groupId>org.springframework.cloudgroupId>
    3. <artifactId>spring-cloud-starter-feignartifactId>
    4. dependency>

    后面迁移到了 openfeign

    1. <dependency>
    2. <groupId>org.springframework.cloudgroupId>
    3. <artifactId>spring-cloud-starter-openfeignartifactId>
    4. dependency>

    https://spring.io/projects/spring-cloud-openfeign

    从 maven 仓库得知,从 2019 年开始 feign 就不更新了,openfeign 代替。

    https://blog.csdn.net/u012060033/article/details/127268844

    https://blog.csdn.net/justlpf/article/details/125874767

    spring cloud alibaba

    阿里在自己的开源产品基础上与 spring cloud 进行了整合,毕竟使用 spring 技术体系的人这么多,自己也不想丢了这个蛋糕是吧?

    其中整合的组件有

    注册中心 nacos

    实现了 spring cloud commons 中的接口

    熔断 sentinel

    消息队列 rocketmq

    升级问题

    鉴于软件都是开发人员开发的,不可避免会考虑不周,会有一些问题,也就是可能被有的人利用。这个就关系到了升级问题。升级过程中不可避免会带来组件的兼容性问题,其中 spring boot 2.5 往上升级就有问题。

    https://blog.csdn.net/zlpzlpzyd/article/details/134203560

    https://blog.csdn.net/zlpzlpzyd/article/details/132779246

  • 相关阅读:
    linux下sqlplus登录oracle显示问号处理办法
    极智AI | 全场景算力产品矩阵 看算能系列AI产品
    根据MediatR的Contract Messages自动生成Minimal WebApi接口
    超越openmp通用核心的硬件
    (02)Cartographer源码无死角解析-(02) ROS基础讲解→
    数据结构与算法:树 线索化二叉树(中,前,后序)(三)
    常用的Python3关键词提取方法
    PHP PDO bindParam 和 bindValue 有什么区别
    TCP的三次握手和四次挥手
    电商项目—订单流程
  • 原文地址:https://blog.csdn.net/zlpzlpzyd/article/details/134219682
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号