SpringBoot - [01] 概述

 

一、什么是SpringBoot

  是一个基于Spring框架的快速开发应用程序的工具,设计目的是为了简化Spring应用的创建、运行、调试、部署等开发过程,使开发人员能够更快地创建独立的、生产就绪的Spring应用程序。

  采用了“约定优于配置”的原则,通过大量的默认配置来减少开发人员需要手动配置的步骤,从而简化了Spring框架中所需的大量且繁琐的配置文件。还集成了大量常用的第三方库配置,使得这些库在Spring Boot应用中几乎可以零配置开箱即用,开发人员只需关注业务配置,无需过多关注底层配置。

  SpringBoot包含了诸如嵌入式Web服务器、自动配置、命令行界面等开箱即用的特性,使得开发人员能够更加容器地开发和部署应用程序,并且可以与其他Spring框架的组件进行无缝集成。

  此外,SpringBoot应用可以独立运行,使用Jar包的形式即可启动,无需复杂的部署过程。总的来说,SpringBoot为Spring应用程序的开发提供了更加简单、快速、灵活的方式,使开发人员能够更专注于业务逻辑的开发,提高开发效率。

 

二、什么是微服务

  微服务是一种架构风格,要求我们在开发一个应用的时候,这个应用必须构建成一系列小服务的组合;可以通过http的方式进行互通。

  单体应用架构(all in one)是指,我们将一个应用中的所有应用服务都封装在一个应用中。无论是ERP、CRM或是其他什么系统,你都把数据库访问,web访问,等等各个功能放到一个war包内。

  这样做的好处是易于开发和测试;也十分方便部署;当需要扩展时,只需要将war复制多份,然后放到多个服务器上,再做个负载均衡就可以了。

  单体应用架构的缺点是,哪怕我要修改一个非常小的地方,我都需要停掉整个服务,重新打包、部署这个应用war包。特别是对于一个大型应用,我们不可能把所有内容都放在一个应用里面,我们如何维护、如何分工合作都是问题。

  all in one的架构方式,我们把所有的功能单元放在一个应用里面。然后我们把整个应用部署到服务器上。如果负载能力不行,我们将整个应用进行水平复制,进行扩展,然后再负载均衡。

  所谓微服务架构,就是打破之前all in one的架构方式,把每个功能元素独立出来。把独立出来的功能元素的动态组合(活字印刷术),需要的功能元素才去拿来组合,需要多一些时可以整合多个功能元素。所以微服务架构是对功能元素进行复制,而没有对整个应用进行复制。

  这样做的好处是:

  1、节省了调用资源。

  2、每个功能元素的服务都是一个可替换的、可独立升级的软件代码。

 

三、SpringBoot的特点

 

  • 遵循“约定优于配置”的原则,只需要很少的配置或使用默认的配置。
  • 能够使用内嵌的Tomcat、Jetty服务器,不需要部署war文件。
  • 提供定制化的启动器Starters,简化Maven配置,开箱即用。
  • 纯Java配置,没有代码生成,也不需要XML配置。
  • 提供了生产级的服务监控方案,如安全监控、应用监控、健康检测等。

 

 

四、SpringBoot的主要特性

4.1、依赖管理

spring-boot-starter-parent的父pom是spring-boot-dependencies

spring-boot-dependencies.pom里面包含了开发中常用的版本集合。

如果我们只是使用默认的版本,那么引入dependency即可;

但是如果我们需要自定义依赖版本,那么额外还需要在<properties>标签中引入自定义的版本。

<properties>
    <activemq.version>5.16.2</activemq.version>
    ......
</properties>

 

4.2、场景Starter

需要引入什么场景的starter,就会将一整套场景的jar包都引入进来,不需要关注多jar包直接的版本号是否兼容彼此,Spring可以自动处理好各jar包之间版本的兼容性问题。

 

4.3、自动配置AutoConfiguration

SpringBoot所有的自动配置功能都在spring-boot-autoconfigure包里面。

 

五、Spring如何简化Java开发的

(1)基于POJO的轻量级和最小侵入性编程;

(2)通过IOC,依赖注入(DI)和面向接口实现松耦合;

(3)基于切面(AOP)和惯例进行声明式编程;

(4)通过切面和模板减少样式代码;

 

 

 

 

— 要养成终身学习的习惯 —

posted @   HOUHUILIN  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示