当前位置: 首页 > ai >正文

【SpringBoot】02 基础入门-什么是Spring Boot?:Spring与SpringBoot

文章目录

  • 1、Spring能做什么
    • 1.1、Spring的能力
    • 1.2、Spring的生态
    • 1.3、Spring5重大升级
      • 1.3.1、响应式编程
      • 1.3.2、内部源码设计
  • 2、为什么用SpringBoot
    • 2.1、SpringBoot优点
    • 2.2、SpringBoot缺点
  • 3、时代背景
    • 3.2、分布式
      • 分布式的困难
      • 分布式的解决
    • 3.3、云原生
      • 上云的困难
  • 4、如何学习SpringBoot
    • 4.1、官网文档架构


1、Spring能做什么

1.1、Spring的能力

在这里插入图片描述

1.2、Spring的生态

https://spring.io/projects/spring-boot

覆盖了:
web开发
数据访问
安全控制
分布式
消息服务
移动开发
批处理

1.3、Spring5重大升级

1.3.1、响应式编程

在这里插入图片描述

1.3.2、内部源码设计

基于Java8的一些新特性,如:接口默认实现。重新设计源码架构。

2、为什么用SpringBoot

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”.
能快速创建出生产级别的Spring应用

2.1、SpringBoot优点

  • Create stand-alone Spring applications
    • 创建独立Spring应用
  • Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)
    • 内嵌web服务器
  • Provide opinionated ‘starter’ dependencies to simplify your build configuration
    • 自动starter依赖,简化构建配置
  • Automatically configure Spring and 3rd party libraries whenever possible
    • 自动配置Spring以及第三方功能
  • Provide production-ready features such as metrics, health checks, and externalized configuration
    • 提供生产级别的监控、健康检查及外部化配置
  • Absolutely no code generation and no requirement for XML configuration
    • 无代码生成、无需编写XML

SpringBoot是整合Spring技术栈的一站式框架
SpringBoot是简化Spring技术栈的快速开发脚手架

2.2、SpringBoot缺点

人称版本帝,迭代快,需要时刻关注变化
封装太深,内部原理复杂,不容易精通

3、时代背景

3.1、微服务
James Lewis and Martin Fowler (2014) 提出微服务完整概念。https://martinfowler.com/microservices/

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.-- James Lewis and Martin Fowler (2014)

  • 微服务是一种架构风格
  • 一个应用拆分为一组小型服务
  • 每个服务运行在自己的进程内,也就是可独立部署和升级
  • 服务之间使用轻量级HTTP交互
  • 服务围绕业务功能拆分
  • 可以由全自动部署机制独立部署
  • 去中心化,服务自治。服务可以使用不同的语言、不同的存储技术

3.2、分布式

在这里插入图片描述

分布式的困难

  • 远程调用
  • 服务发现
  • 负载均衡
  • 服务容错
  • 配置管理
  • 服务监控
  • 链路追踪
  • 日志管理
  • 任务调度

分布式的解决

  • SpringBoot + SpringCloud

在这里插入图片描述

3.3、云原生

原生应用如何上云。 Cloud Native

上云的困难

  • 服务自愈
  • 弹性伸缩
  • 服务隔离
  • 自动化部署
  • 灰度发布
  • 流量治理

    上云的解决
    在这里插入图片描述

4、如何学习SpringBoot

https://docs.spring.io/spring-boot/index.html

4.1、官网文档架构

在这里插入图片描述
在这里插入图片描述

查看版本新特性;
https://github.com/spring-projects/spring-boot/wiki#release-notes

官网:
https://spring.io/

在这里插入图片描述


Spring 及其衍生框架(如 Spring Boot)作为现代 Java 企业级开发的核心技术栈,凭借其强大的功能覆盖、灵活的架构设计以及持续的技术革新,已经成为开发者构建高效、可靠、可扩展应用的首选工具。

从 Spring 的核心能力来看,它不仅提供了全面的企业级功能支持,如 Web 开发、数据访问、安全控制等,还通过 Spring 5 的重大升级,引入了响应式编程模型,使开发者能够轻松应对高并发、低延迟的应用场景。同时,Spring 内部基于 Java 8 新特性的源码重构,进一步提升了框架的性能和可维护性,展现了其与时俱进的技术视野。

Spring Boot 的出现,更是将 Spring 的易用性提升到了一个新的高度。它通过“约定优于配置”的原则,简化了繁琐的配置过程,使开发者能够快速搭建起生产级别的 Spring 应用。内嵌的 Web 服务器、自动化的依赖管理和配置、丰富的生产就绪特性(如监控、健康检查等),都极大地提高了开发效率和应用的可靠性。尽管 Spring Boot 存在迭代快、封装深等挑战,但其带来的开发体验和效率提升,无疑是值得开发者投入时间学习和掌握的。

在时代背景的推动下,微服务、分布式和云原生等架构理念逐渐成为主流。Spring Boot 与 Spring Cloud 的结合,为分布式系统的开发提供了完整的解决方案,从服务发现、负载均衡到服务容错、配置管理,覆盖了分布式系统的各个方面。同时,面对云原生应用的挑战,Spring Boot 也通过与 Kubernetes、Docker 等技术的集成,提供了服务自愈、弹性伸缩、自动化部署等能力,使应用能够更好地适应云环境。

对于开发者而言,学习 Spring Boot 不仅需要掌握其基本概念和用法,还需要深入理解其背后的设计理念和架构思想。通过阅读官方文档、参与社区讨论、实践项目开发等方式,可以逐步提升对 Spring Boot 的理解和应用能力。同时,关注 Spring Boot 的版本更新和新特性发布,也是保持技术竞争力的关键。

总之,Spring Boot 作为 Spring 技术栈的重要一环,以其强大的功能、易用的特性和持续的技术革新,为开发者提供了构建现代应用的得力工具。在未来的开发道路上,掌握 Spring Boot 将无疑为开发者的职业发展增添重要砝码。

http://www.xdnf.cn/news/17489.html

相关文章:

  • CLIP在文生图模型中的应用
  • Unity笔记(五)知识补充——场景切换、退出游戏、鼠标隐藏锁定、随机数、委托
  • redis笔记(二)
  • 深入解析游戏引擎(OGRE引擎)通用属性系统:基于Any类的类型安全动态属性设计
  • 《深度剖析前端框架中错误边界:异常处理的基石与进阶》
  • Rust 实战五 | 配置 Tauri 应用图标及解决 exe 被识别为威胁的问题
  • 麒麟系统使用-PATH设置
  • 【96页PPT】华为IPD流程管理详细版(附下载方式)
  • 34-Hive SQL DML语法之查询数据-3
  • 游戏盾是什么?
  • Vibe Coding 自然语言驱动 AI 编程方式
  • 在Linux中部署tomcat
  • Android Coil3视频封面抽取封面帧存Disk缓存,Kotlin
  • 自然语言处理实战:用LSTM打造武侠小说生成器
  • GraalVM !拥抱云原生的 JVM
  • Python 的浅拷贝 vs 深拷贝(含嵌套可变对象示例与踩坑场景)
  • 人工智能正在学习自我提升的方式
  • TF-IDF提取关键词(附实战案例)
  • 商业解决方案技术栈总结
  • CVPR医学图像三套创新方案:通用分割+3D高效解码+SSM肿瘤定位(附链接)
  • 算法训练营day44 动态规划⑪ 1143.最长公共子序列、1035.不相交的线、53. 最大子序和、392.判断子序列
  • 【Redis】持久化方案——RDB和AOF
  • Vue3从入门到精通: 2.5 Vue3组件库开发与设计系统构建
  • 海关 瑞数 失信企业 逆向 分析 后缀 rs
  • Java高并发场景下的缓存穿透问题定位与解决方案
  • MySQL的存储引擎:
  • Java中new的相关知识
  • TDengine IDMP 快速体验(方式二 通过 docker)
  • 系统测试讲解 - Java使用selenium实现滑块验证的处理详解
  • Qt 框架全面解析:从基础到应用