Spring与SpringBoot

文章目录

    • 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.1、微服务
    • 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

4.1、官网文档架构

查看版本新特性;

https://github.com/spring-projects/spring-boot/wiki#release-notes

Spring与SpringBoot 学习笔记(1)相关推荐

  1. SpringBoot学习笔记(3):静态资源处理

    SpringBoot学习笔记(3):静态资源处理 在web开发中,静态资源的访问是必不可少的,如:Html.图片.js.css 等资源的访问. Spring Boot 对静态资源访问提供了很好的支持, ...

  2. springboot学习笔记(五)

    一丶注值方式 1.在application.properties文件中注值 首先我们将application.yml中的学生名字和年龄给注释掉,来验证在applic.properties的注值方式. ...

  3. SpringBoot学习笔记(16):单元测试

    SpringBoot学习笔记(16):单元测试 单元测试 单元测试(英语:Unit Testing)又称为模块测试,是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作.程序单元是应用的最小 ...

  4. SpringBoot学习笔记(9)----SpringBoot中使用关系型数据库以及事务处理

    在实际的运用开发中,跟数据库之间的交互是必不可少的,SpringBoot也提供了两种跟数据库交互的方式. 1. 使用JdbcTemplate 在SpringBoot中提供了JdbcTemplate模板 ...

  5. Spring Boot 2 学习笔记(2 / 2)

    Spring Boot 2 学习笔记(1 / 2) - - - 45.web实验-抽取公共页面 46.web实验-遍历数据与页面bug修改 47.视图解析-[源码分析]-视图解析器与视图 48.拦截器 ...

  6. SpringBoot学习笔记(16)----SpringBoot整合Swagger2

    Swagger 是一个规范和完整的框架,用于生成,描述,调用和可视化RESTful风格的web服务 http://swagger.io Springfox的前身是swagger-springmvc,是 ...

  7. SpringBoot学习笔记(8):事物处理

    SpringBoot学习笔记(8):事物处理 快速入门 在传统的JDBC事务代码开发过程中,业务代码只有一部分,大部分都是与JDBC有关的功能代码,比如数据库的获取与关闭以及事务的提交与回滚.大量的t ...

  8. SpringBoot学习笔记(4):自定义的过滤器

    SpringBoot:学习笔记(4)--自定义的过滤器 快速开始 SpringBoot提供的前端控制器无法满足我们产品的需求时,我们需要添加自定义的过滤器. 在SpringBoot的开发中,我们应该还 ...

  9. 2.6 springBoot学习笔记(2.6)——- 整合mybatisPlus

    更多文章 更多系列文章在个人网站 springBoot学习系列笔记文章 springBoot学习笔记(1)-- 搭建springBoot项目 文章目录 更多文章 springBoot学习系列笔记文章 ...

最新文章

  1. 【Linux入门到精通系列讲解】工具——make/Makefile
  2. 匿名内部类使用的场景之一
  3. mac搭建appium环境之设置chromdriver
  4. SpringCloud-使用路由网关统一访问接口(附代码下载)
  5. redis scan 效率太慢_Redis 基础、高级特性与性能调优(下)
  6. 精美技术图赏|技术精华
  7. SAP C4C里没有选择Port binding的url Mashup行为分析
  8. 25k英里高速建48个充电走廊,美国电动汽车产业迎来春天
  9. nginx配置:支持phpfastcgi,nginx和php-cgi通信,部分nginx常量解释
  10. php不显示内容里的图片不显示,图片显示不出来,但是数据库里有显示
  11. Vue 第一天:模板语法
  12. Xcode插件失效解决办法
  13. DHCP offer报文到底是单播还是广播?
  14. VS编译报错Error2019
  15. Mysql主从知识扩展部分1
  16. php数据库图片读取不全,图片显示不出来,但是数据库里有显示
  17. jersey restful 测试_Jersey实现Restful服务
  18. 专业学习经验交流会成功举行
  19. python游戏制作rpg_2. Molten从零开始做独立游戏-引擎选用
  20. 注销手机号,存在重大安全问题

热门文章

  1. Atlassian JIRA 插件开发之二 安装和创建项目
  2. DataTable克隆行
  3. vue组件弹出框点击显示隐藏
  4. CSS3属性——“box-flex”
  5. Bootstrap导航栏实例讲解
  6. 【信息系统项目管理师】第5章-项目范围管理 知识点详细整理
  7. Python爬虫之酷安应用商店
  8. Makefile之eval与call用法
  9. Emacs:报错:File error: Cannot open load file,cl-lib解决
  10. spark 安装与使用 educoder