【SpringBoot 2】(一)基础知识了解学习

简介: 【SpringBoot 2】(一)基础知识了解学习

1 初识SpringBoot

1.1 概念

 SpringBoot是Spring全家桶的成员之一,基于约定优于配置的思想(即有约定默认值,在不配置的情况下会使用默认值,在配置文件下配置的话会使用配置的值)。SpringBoot是一种整合Spring技术栈的方式(或者说是框架),同时也是简化Spring的一种快速开发的脚手架。


1.2 为什么要使用SpringBoot

       官网对这个问题作出如此解答



1.2.1 SpringBoot的优点

创建独立Spring应用:SpringBoot本身创建的也是一个Spring应用

内嵌web服务器:Spring的web项目需要打成war使用tomcat服务器运行,SpringBoot创建的应用自带服务器,无需再下载tomcat

自动starter依赖,简化构建配置:只需导入相关场景的依赖,其底层需要使用的各个jar包和版本都已经配置好了

自动配置Spring以及第三方功能:取代之前Spring的一系列对spring、SpringMVC、MyBatis的配置文件,直接上手编写业务代码

提供生产级别的监控、健康检查及外部化配置

无代码生成、无需编写XML


1.2.2 SpringBoot的缺点

版本迭代更新太快,人称版本帝

封装的太深,内部原理复杂,不容易精通

2 SpringBoot的技术背景

2.1 微服务

       SpringBoot是一种用来管理微服务的框架,让程序员可以不必在配置与逻辑业务之间进行思维切换,从而加快Spring开发的速度。


       微服务是一种架构风格,这种风格习惯于将一个应用围绕业务功能拆分为一组小型服务。每个服务运行在自己的进程内,也就是可独立部署和升级。各个微服务之间使用轻量级HTTP交互,  可以由全自动部署机制独立部署。微服务是去中心化的,实现服务自治,即服务可以使用不同的语言、不同的存储技术。


2.2 分布式

       由于微服务架构风格的兴起,一个应用被拆分成为许多的微服务独立部署之后,就会导致分布式的产生。


       分布式的存在会导致一些问题需要解决:远程调用(各个微服务之间相互调用)、服务发现(确认哪些服务是可用的)、负载均衡(决定调用哪个服务)、服务容错(各种错误情况下的处理方式)、配置管理(修改配置中心的配置,部署在不同机器上的相同服务自动同步最新配置)、服务监控(多个服务以及云平台的资源消耗和健康状况)、链路追踪(出错后通过链路找到出错的服务)、日志管理(整个分布式网路上所有的服务的日志信息)、任务调度(对某一任务进行定时任务时,部署在不同机器上的相同服务的触发个数、触发方式……)


       以上问题的解决方法:SpringBoot + SpringCloud + SpringCloudDataFlow


2.3 云原生

       服务开发之后需要使用云部署供大家应用,原生应用上云又会产生以下问题:服务自愈(服务崩了能否在另一台服务器上自动部署一个一样的服务)、弹性收缩(流量高峰期间,服务是否可以自动在别的几台服务器上自动部署多台服务,过了高峰期之后再下线)、服务隔离(部署在一台服务器上的服务相互之间不影响)、自动化部署(不用一个一个将服务部署到服务器上)、灰度发布(服务更新时先更新其中的一小部分,等到新老版本共存没有问题之后,慢慢替换掉剩下的所有老服务)、流量治理(动态设置每个服务的进出流量)


相关文章
|
9天前
|
前端开发 Java 开发者
Spring生态学习路径与源码深度探讨
【11月更文挑战第13天】Spring框架作为Java企业级开发中的核心框架,其丰富的生态系统和强大的功能吸引了无数开发者的关注。学习Spring生态不仅仅是掌握Spring Framework本身,更需要深入理解其周边组件和工具,以及源码的底层实现逻辑。本文将从Spring生态的学习路径入手,详细探讨如何系统地学习Spring,并深入解析各个重点的底层实现逻辑。
36 9
|
29天前
|
前端开发 Java 数据库
SpringBoot学习
【10月更文挑战第7天】Spring学习
34 9
|
1月前
|
XML Java 数据格式
Spring学习
【10月更文挑战第6天】Spring学习
19 1
|
1月前
|
Java 测试技术 开发者
springboot学习四:Spring Boot profile多环境配置、devtools热部署
这篇文章主要介绍了如何在Spring Boot中进行多环境配置以及如何整合DevTools实现热部署,以提高开发效率。
56 2
|
1月前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
90 1
|
1月前
|
Java API Spring
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中拦截器的入门教程和实战项目场景实现的详细指南。
26 0
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
|
1月前
|
Java API Spring
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中过滤器的基础知识和实战项目应用的教程。
23 0
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
|
1月前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
69 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库
|
1月前
|
Java 关系型数据库 MySQL
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
这篇文章是关于如何使用Spring Boot框架通过JdbcTemplate操作MySQL数据库的教程。
25 0
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
|
1月前
|
Java 测试技术 Spring
springboot学习三:Spring Boot 配置文件语法、静态工具类读取配置文件、静态工具类读取配置文件
这篇文章介绍了Spring Boot中配置文件的语法、如何读取配置文件以及如何通过静态工具类读取配置文件。
46 0
springboot学习三:Spring Boot 配置文件语法、静态工具类读取配置文件、静态工具类读取配置文件