Spring Boot 完整讲解
本文是鄙人早期学习的记录,存在部分不足的问题,可以私信或留言讨论,文档将一步步翻修
SpringBoot学习笔记
文章写得比较详细,所以很长(105336 字数),可以参考目录
文章目录
- SpringBoot学习笔记
- @[toc]
- 一、 Spring Boot 入门
- 预:必须掌握的技术:
- 1. Spring Boot 简介
- 学前bb
- 解决的问题
- 优点
- 缺点
- 2.微服务
- What are Microservices?
- 单体应用
- 微服务
- 3.环境准备
- Maven设置:
- Idea设置
- 4.Spring Boot HelloWorld
- 4.1创建一个maven项目
- 4.2 创建项目结构以及启动类
- 5.Hello World 的探究
- 1)pom文件
- a.父项目
- b.导入的依赖
- 2)主程序类,主入口类
- 6.使用Spring Initializer快速创建Spring Boot 项目
- SpringBoot学习第一步:搭建基础
- 流程如下
- 默认生成的Spring Boot 项目:
- 二、Spring Boot 配置
- 1. 配置文件
- 2. YAML语法
- 1)基本语法
- 2)值的写法
- 字面量:普通的值(数字,字符串,布尔)
- 对象、Map(属性和值)(键值对)
- 数组(List、Set):
- 附:Spring Boot单元测试
- 3. 通过配置文件注入
- 1) 数据绑定到基础数据类型
- 2) 将数据绑定到类中 含配置文件与类绑定的方法
- 3) @Value 获取值和 @ConfigurationProperties获取值的比较
- 4) 配置文件注入值数据校验
- 5) @PropertySource & @ImportResource
- 4)Spring配置文件注入
- a. @**ImportResource**: 导入Spring配置文件,让配置文件里面的内容生效;
- b. Spring Boot 推荐给容器添加组件的方式
- 4.配置文件占位符
- RandomValuePropertySource: 配置文件中可以使用随机数
- 属性配置占位符
- 5.Profile
- 1)多Profile文件
- 2)yml支持多文档块方式
- 3)激活指定Profile
- 6.配置文件的加载位置
- 7.Spring Boot 外部配置加载顺序
- 8.Spring Boot 自动配置原理
- 配置文件能写些什么?怎么写?自动配置的原理?
- 自动配置原理:
- 精髓
- 3.自动配置原理(细节)
- 1)@Conditional派生注解(Spring注解版原生的@Conditional作用)
- 三、Spring Boot 与日志
- 1、日志框架
- 2、SLF4j使用
- 1)如何在系统中使用SLF4j
- 2)遗留问题
- 3)SpringBoot日志关系
- 3.日志使用
- 1)默认配置
- 2)指定配置
- 3)切换日志框架
- 四、SpringBoot与Web开发
- 1、使用SpringBoot
- 2、SpringBoot对静态页面的映射规则
- 访问静态资源
- 第一种 导入的webjars
- 第二种"/**"访问当前项目的任何资源
- 欢迎页配置
- 图标
- 3、模板引擎
- 引入thymeleaf
- Thymeleaf使用&语法
- 语法规则
- 1)、th:text 改变当前元素里面的内容
- 2)表达式
- Variable Expressions: ${...} 获取变量值,OGNL;
- Message Expressions: #{...} 获取国际化内容
- Link URL Expressions: @{...} 定义URL链接
- Fragment Expressions: ~{...} 插入文档
- Literals(字面量)
- Text operations: (文本操作)
- Arithmetic operations: (数学运算)
- Boolean operations: (布尔运算)
- Comparisons and equality:(比较运算)
- Conditional operators:(条件运算)(三元运算符也支持)
- Special tokens:(特殊)
- 4、SpringMVC自动配置
- 7.1.1. Spring MVC Auto-configuration
- 扩展SpringMVC
- 全面接管SpringMVC
- 5、如何修改SpringBoot的默认配置
- 6、RestfulCRUD
- 1)、设置默认访问首页
- 2)、国际化
- SprigMVC的情况
- SpringBoot模式
- 原理
- 3)、登录
- 若登录失败,需要提升失败信息
- 使用MVC视图解析跳转会出现刷新重新提交表单的情况,为防止这种情况发生,我们可以使用重定向
- 4)、拦截器进行登录检查
- 为了防止他人随机访问后台管理页面,可以利用拦截器机制,做登录检查
- 5)、CRUD-员工列表
- 7、错误处理机制
- 1)、SpringBoot默认的错误处理机制
- 五、配置嵌入式Servlet容器
- 嵌入式Servlet容器配置
- 注册Servlet容器三大组件
- 使用其他Servlet容器
- 嵌入式Servlet容器自动配置原理
- Spring Boot 如何自动配置servlet容器
- 我们对嵌入式容器配置的修改如何生效
- 嵌入式Servlet容器启动原理
- 使用外置的Servlet容器
- 外置的Servlet容器:外面安装Tomcat——应用war包的方式打包
- 六、数据访问
- 1、jdbc配置
- 配置properties
- 效果:
- 自动配置原理:
- 2.使用druid
- Druid的简介
- 同时Druid不仅仅是一个数据库连接池,它包括四个部分:
- Druid的功能
- 所以Druid可以:
- 配置Druid
- 引入stater
- 在配置文件进行配置
- 3、整合Jpa
- 4、整合MyBatis
- MyBatis原理
- 一、Mybatis工作原理图
- 二、工作原理解析
- mybatis层次图:![在这里插入图片描述](https://img-blog.csdnimg.cn/20200228231938758.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQ5NDM3Mw==,size_16,color_FFFFFF,t_70)
- 配置
- 引入依赖
- 在启动类上注解——增加MapperScan注解路径执行mapper接口路径
- 配置文件进行配置
- 注解模式进行开发
- 七、创建SpringBootApplication
- 八、缓存
- 1、统一的缓存开发规范:J2EE——JSR107
- 2、配置
- 2、Spring缓存抽象
- 重要概念&缓存注解
- 配置环境
- @Cacheable属性配置
- cacheNames/value
- key
- SpEL表达式
- keyGenerator
- cacheManager
- condition
- unless
- sync
- @CachePut
- @CacheEvict
- key、keyGenerator与以上两个相同
- condition
- allEntries
- beforeInvocation
- @Caching
- @CacheConfig
- 原理
- 运行流程
- 3、整合redis缓存
- 整合
- Redis使用自制序列化器
- 九、Spring Boot 与消息
- 1、消息队列是什么以及why消息队列
- 1、异步:
- why异步,而不是线程池?
- 2、解耦:
- 用了**消息队列**,耦合这个问题就迎刃而解。
- 那你的流程走完了,你不用管别人是否成功么?比如你下单了积分没加,优惠券没扣怎么办?
- 3、削峰:
- 解决高压访问
- 使用了消息队列的问题?
- 系统复杂性
- 数据一致性
- 可用性
- 技术选型(选择中间件)?
- 2、重要概念
- 1、两个重要概念
- 2、消息队列的两种模式
- 3.1 点对点模式
- 3.2 发布/订阅模式
- 3、RabbitMQ
- a.简介
- b.核心概念
- Message
- Publisher
- Exchange
- Queue
- Binding
- Connection、
- Channel
- Consumer
- Virtual Host
- Broker
- c.Exchange类型
- Direct
- fanout
- topic
- d.RabbitMQ安装测试
- 4、RabbitMQ整合
- 先引入依赖(可以勾选idea项目选项快速完成)
- 自动配置类:
- 应用RabbitTemplate操作举例
- 监听场景@RabbitListener @EnableRabbit
- AmqpAdmin的应用
- 十、SpringBoot与检索
- 十一、Spring Boot 与任务
- 异步任务
- 使用异步@Async
- 定时任务
- 开启定时任务
- 邮件任务
- 配置
- 引入依赖
- 配置文件
- 自动配置类
- 发送邮件
- 发送一个简单的邮件
- 发送一个复杂消息邮件
- 十二、Spring Boor与安全
- SpringSecurity概述
- 几个类:
- 基础概念
- 开启SpringSecurity
- 首先引入依赖
- 编写安全配置类
- 十三、Spring Boot与分布式
- 1、分布式概述
- Dubbo工作图
- 安装Zookeeper
- 整合Zookeeper、Dubbo、SpringBoot
- 1、引入依赖
- 2、配置dubbo
- 3、编写服务
- 4、消费者
- 四种架构
- 十四、Docker
- 基础
- 安装Docker
- docker常用指令
一、 Spring Boot 入门
Spring Boot 官方文档
预:必须掌握的技术:
- Spring 框架的使用经验
- 熟练使用Maven进行项目构建和依赖管理
- 熟练使用IDEA或Eclipse
1. Spring Boot 简介
学前bb
大多数人应该知道神奇SSM(Spring+SpringMVC+MyBatis)三兄弟让JavaWeb的开发几乎是进入了新次元,按照官方的要求来编写代码,配置项目,项目就能稳定运行。
而SpringBoot更神奇了,人家就倡导两个字:自动(个人口胡
SSM配置到吐的配置文件,SpringBoot就几行字,就是舒适。
Spring Boot 来简化Spring 应用的开发,约定大于配置,去繁从简,明显提高开发效率
然后Spring Boot发展了一段时间呢,大家觉得这个啊,是真的香,拿来整微服务,岂不是美滋滋
于是你会发现大多数微服务都是Spring Boot为基础,
(甚至Eureka的服务注册中心,就是个Spring Boot项目)
2020/12/10:本篇文章呢,会提到一些自动配置的原理,各位只是看个爽,这里可以选看,如果是为了学习Spring Boot,还是建议仔细品一品的!毕竟Spring Boot就是Spring+Spring MVC的无敌全自动版本,自动配置是核心。
解决的问题
- Spring全家桶时代
- Spring Boot ——》J2EE一站式解决方案
- Spring Cloud -> 分布式整体解决方案(Spring技术栈)
优点
- 快速创建独立运行的Spring项目以及与主流框架集成
- 使用嵌入式Servlet容器,应用无需打成WAR包,直接使用Java -jar jar包名即可运行
- starters自动依赖与版本控制
- 大量的自动配置,简化开发,也可以修改默认值
- 无需配置XML,无需代码生成,开箱即用
- 准生产环境的运行时应用监控
- 与云计算的天然集成
缺点
入门快,精通很难
Spring Boot是对Spring 框架的再封装,若对Spring不了解,对SpringBoot的封装机制也不会很了解,Spring Boot中许多自动配置,需要我们了解Spring的API(只有在了解Spring的API后才能更精通Spring Boot
2.微服务
martin fowler详细介绍了微服务Martin Fowler:microservices
What are Microservices?
微服务是一种架构风格
提倡在开发应用时,一个应用应该是一组小型服务;可以通过HTTP的方式进行互通
单体应用
- All In One ,
- 是传统的架构,
- 优点:开发 、部署、运维要简单,
- 缺点:牵一发动全身,不适合大型应用
- 在多个服务器上复制这个单体进行扩展
微服务
- 一个微服务架构把每个功能元素放进一个独立的服务中
- 通过跨域服务器分发这些服务进行扩展,只在需要时进行扩展
Spring Boot 完整讲解相关推荐
- 超全、超详的Spring Boot配置讲解笔记
超全.超详的Spring Boot配置讲解笔记 springboot默认加载配置 SpringBoot使用两种全局的配置文件,全局配置文件可以对一些默认配置进行修改. application.prop ...
- spring boot 完整集成jsp。(亲测可用)
1.idea在工程源文件夹src/main/下创建web资源文件夹,webapp,并设置为资源文件. 2.application.properties文件设置如下 #jsp 支持 spring.m ...
- Spring Boot基础讲解
Spring Boot Spring Boot 是由Pivotal团队提供的框架,它并不是一个全新的框架,而是将已有的 Spring 组件整合起来,设计目的是用来简化新Spring应用的初始搭建以及开 ...
- Spring Boot 大型线上商城项目实战教程
写给读者 凭借 Spring Boot 本身的优越性及在企业开发应用中的不断推广普及,该领域技术人才在招聘市场深受欢迎.2018 年 Spring Boot 2 正式版的发布,引起社区对该技术的关注度 ...
- Spring Boot 属性配置和使用
spring Boot 允许通过外部配置让你在不同的环境使用同一应用程序的代码,简单说就是可以通过配置文件来注入属性或者修改默认的配置. Spring Boot 系列 Spring Boot 入门 S ...
- 如何免安装服务器将 React 整合进 Spring Boot
如何免安装服务器将 React 整合进 Spring Boot 下载 Spring Boot 官方 demo 下载 React 官方 demo 开始整合 使用 Spring MVC 控制器导向 Rea ...
- 微服务架构具体实现工具框架:Spring Boot概览与核心原理
目录 一.Spring Boot概述 1.回顾使用Spring开发WEB应用程序过程 2.新一代开发框架的诞生Spring Boot 编码方面 配置方面 部署方面 监控方面 3.SpringBoot核 ...
- 热烈庆祝《Spring Boot 2.X 实战教程》上线了!
视频地址:https://edu.csdn.net/course/detail/25550 l 机构名称:大华软件学院 l 授课讲师:大强老师 l 课程名称:Spring Boot 2.X 实战教程 ...
- java5分钟项目讲解_5分钟快速创建spring boot项目的完整步骤
前言 上一篇博客说了如何创建spring boot项目,但是有些同学会觉得有点麻烦,有没有什么快速学会能快速创建spring boot项目的方法,答案是肯定的.接下来我们就一起来快速创建一个sprin ...
最新文章
- 为rm添加一个回收站|将linux下的rm命令改造成mv到指定的目录下
- Linux 操作系统原理 — 内存 — Cache 和 Buffer
- 2017-11-29 黑盒测试实践(小组作业)小组工作记录
- mongodb学习参考博文
- djc加密数字货币_中国银行原副行长: quot;网络加密币quot;难以成为货币,央行数字货币只能是法定货币的数字化...
- 8086数据寄存器介绍
- UML类图中的各种箭头代表的含义(转自:http://www.cnblogs.com/damsoft/archive/2016/10/24/5993602.html)
- 【spring boot】【thymeleaf】SPEL调用静态方法和静态属性
- java return
- 无人机导航定位系统Java_无人机高精度室内定位导航的技术方案
- 技术分享连载(六十一)
- java+filter加密_Javaweb之Filter案例练习-自动登录问题和MD5加密
- java启动servlet_Java Servlet 运行原理分析
- JavaScript十六进制、八进制、二进制与十进制互转
- onfling滑动界面进行Activity切换
- php之使用curl对百度orc进行文字识别(二维码识别同理)--base64编码方式(解决image format error)
- 面试官:请手写一个 webpack 4.0 配置
- 不定积分 基本积分表
- 新旧Oracle客户端连接远程oracle数据库
- 项目组织结构的3种类型:职能型、项目型和矩阵型
热门文章
- 超全、超详的Spring Boot配置讲解笔记