SpringBoot专题学习Part1:为什么要学SpringBoot
传统应用和微服务的对比
■ 传统的单体应用:
代码全写在一个应用里 页面也放在同一个页面里
使用时 打成一个war包放在服务器上即可
最大问题:牵一发而动全身
■ 微服务:
2014年Martin Fowler提出微服务的概念
微服务是一种架构风格 即服务微化
打破传统的方式 独立出每一个功能元素 动态组合
一个应用应为一组小型服务 通过HTTP的方式进行轻量级互通
每一个功能服务都应是一个可独立替换 可独立升级的软件单元
扩容的时候 是功能元素级别的复制 而不是整个应用的复制
最终形成一张应用网 里面有非常多的微服务互相通信 共同组成一个应用
然而 有部署和运维困难的问题
且每个功能单元都是完整的单元 每次都要创建 会极其麻烦
因此 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工程
特点
- 开箱即用(启动器starter其实就是SpringBoot提供的一个jar包)
- 提供了一些大型项目中常见的非功能性特性 如内嵌服务器 安全 指标 健康检测 外部化配置等
- 绝对没有代码生成 也无需XML配置
- 快速创建独立运行的Spring项目以及与主流框架集成
- 使用嵌入式的Servlet容器 应用无需打成WAR包
- Starters自动依赖与版本控制
- 大量的自动配置 简化开发 也可修改默认值
- 准生产环境的运行时应用监控
- 与云计算的天然集成
当然 还有最实际的一点 就是学了之后工作会更好找 哈哈哈哈哈哈哈