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是在Spring框架上创建的一个全新的框架,其设计目的是简化Spring应用的搭建和开发过程。
2.1、Springboot的核心功能
1)创建独立Spring应用
Spring Boot 可以以 jar 包的形式独立运行,运行一个 Spring Boot 项目只需通过 java–jar xx.jar 来运行。
2)内嵌web服务器
Spring Boot 可选择内嵌 Tomcat、Jetty 或者 Undertow,这样我们无须以 war 包形式部署项目。
3)自动starter依赖,简化构建配置
Spring 提供了一系列的 starter pom 来简化 Maven 的依赖加载,例如,当你使用了spring-boot-starter-web 时,会自动加入spring-boot-starter-web的依赖包。
4)自动配置Spring以及第三方功能
Spring Boot 会根据在类路径中的 jar 包、类,为 jar 包里的类自动配置 Bean,这样会极大地减少我们要使用的配置。当然,Spring Boot 只是考虑了大多数的开发场景,并不是所有的场景,若在实际开发中我们需要自动配置 Bean,而 Spring Boot 没有提供支持,则可以自定义自动配置。
5)准生产的应用监控
Spring Boot 提供基于 http、ssh、telnet 对运行时的项目进行监控。
6)无代码生成和 xml 配置
Spring Boot 的神奇的不是借助于代码生成来实现的,而是通过条件注解来实现的,这是 Spring 4.x 提供的新特性。Spring 4.x 提倡使用 Java 配置和注解配置组合,而 Spring Boot 不需要任何 xml 配置即可实现 Spring 的所有配置。
2.2、Spring Boot的优缺点
1)优点:
① 快速构建项目。
② 对主流开发框架的无配置集成。
③ 项目可独立运行,无须外部依赖Servlet容器。
④ 提供运行时的应用监控。
⑤ 极大地提高了开发、部署效率。
⑥ 与云计算的天然集成。
2)缺点:
① 版本迭代速度很快,一些模块改动很大。
② 由于不用自己做配置,报错时很难定位。
③ 网上现成的解决方案比较少。
3、如何学习Springboot?
查看官方文档:https://docs.spring.io/spring-boot/docs/current/reference/html/
翻译后如下:
4、时代背景
4.1、微服务
James Lewis and Martin Fowler (2014) 提出微服务完整概念。https://martinfowler.com/microservices/
- 微服务是一种架构风格
- 一个应用拆分为一组小型服务
- 每个服务运行在自己的进程内,也就是可独立部署和升级
- 服务之间使用轻量级HTTP交互
- 服务围绕业务功能拆分
- 可以由全自动部署机制独立部署
- 去中心化,服务自治。服务可以使用不同的语言、不同的存储技术
4.2、分布式
分布式的困难
- 远程调用
- 服务发现
- 负载均衡
- 服务容错
- 配置管理
- 服务监控
- 链路追踪
- 日志管理
- 任务调度
- …
分布式的解决
• SpringBoot + SpringCloud
4.3、云原生
原生应用如何上云。 Cloud Native
上云的困难
- 服务自愈
- 弹性伸缩
- 服务隔离
- 自动化部署
- 灰度发布
- 流量治理
- …
上云的解决: Cloud Native