SpringBoot专题学习Part1:为什么要学SpringBoot

传统应用和微服务的对比

■ 传统的单体应用:

代码全写在一个应用里 页面也放在同一个页面里
使用时 打成一个war包放在服务器上即可
SpringBoot专题学习Part1:为什么要学SpringBoot
最大问题:牵一发而动全身

■ 微服务:

2014年Martin Fowler提出微服务的概念
微服务是一种架构风格 即服务微化

打破传统的方式 独立出每一个功能元素 动态组合
一个应用应为一组小型服务 通过HTTP的方式进行轻量级互通
每一个功能服务都应是一个可独立替换 可独立升级的软件单元

扩容的时候 是功能元素级别的复制 而不是整个应用的复制
SpringBoot专题学习Part1:为什么要学SpringBoot
最终形成一张应用网 里面有非常多的微服务互相通信 共同组成一个应用
然而 有部署和运维困难的问题
且每个功能单元都是完整的单元 每次都要创建 会极其麻烦
SpringBoot专题学习Part1:为什么要学SpringBoot
因此 Spring提供了一站式的解决方案(图是我在官网拿的

SpringBoot就是其中之一

概念:

Boot(启动)

SpringBoot用于快速构建Spring应用程序
搭建程序的脚手架 快速构建庞大的Spring项目
尽可能减少一切xml配置 做到开箱即用 迅速上手 更加关注业务而非配置

Spring Boot来简化Spring应用开发 约定大于配置
去繁从简 just run就能创建一个独立的 产品级别的应用

以前Java开发的弊病:

  • 1、J2EE笨重的开发 繁多的配置 低下的开发效率
  • 2、混乱的依赖管理和版本管理
  • 3、复杂的部署流程 第三方技术集成难度大

SpringBoot简化了基于Spring的应用开发 只需要run即可创建一个独立的 生产级别的Spring应用
SpringBoot为Spring平台及第三方库提供开箱即用的设置(提供默认设置 存放默认配置的包也就是启动器starter)
多数Spring Boot应用只需要很少的Spring配置

可以使用SpringBoot创建java应用 并使用java -jar启动它 即可得到一个生产级别的web工程
SpringBoot专题学习Part1:为什么要学SpringBoot

特点

  • 开箱即用(启动器starter其实就是SpringBoot提供的一个jar包)
  • 提供了一些大型项目中常见的非功能性特性 如内嵌服务器 安全 指标 健康检测 外部化配置等
  • 绝对没有代码生成 也无需XML配置
  • 快速创建独立运行的Spring项目以及与主流框架集成
  • 使用嵌入式的Servlet容器 应用无需打成WAR包
  • Starters自动依赖与版本控制
  • 大量的自动配置 简化开发 也可修改默认值
  • 准生产环境的运行时应用监控
  • 云计算天然集成

当然 还有最实际的一点 就是学了之后工作会更好找 哈哈哈哈哈哈哈