admin管理员组文章数量:1608852
本文是鄙人早期学习的记录,存在部分不足的问题,可以私信或留言讨论,文档将一步步翻修
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://i-blog.csdnimg/blog_migrate/6fa9254664279811472377bc97d28aa1.png)
- 配置
-
- 引入依赖
- 在启动类上注解——增加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常用指令
- @[toc]
- 预:必须掌握的技术:
- 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 项目:
- 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作用)
- 1、日志框架
- 2、SLF4j使用
-
- 1)如何在系统中使用SLF4j
- 2)遗留问题
- 3)SpringBoot日志关系
- 3.日志使用
-
- 1)默认配置
- 2)指定配置
- 3)切换日志框架
- 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容器自动配置原理
-
- 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://i-blog.csdnimg/blog_migrate/6fa9254664279811472377bc97d28aa1.png)
- 配置
-
- 引入依赖
- 在启动类上注解——增加MapperScan注解路径执行mapper接口路径
- 配置文件进行配置
- 注解模式进行开发
- 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使用自制序列化器
- 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的应用
- 异步任务
-
- 使用异步@Async
- 定时任务
-
- 开启定时任务
- 邮件任务
-
- 配置
-
- 引入依赖
- 配置文件
- 自动配置类
- 发送邮件
-
- 发送一个简单的邮件
- 发送一个复杂消息邮件
- SpringSecurity概述
-
- 几个类:
- 基础概念
- 开启SpringSecurity
-
- 首先引入依赖
- 编写安全配置类
- 1、分布式概述
-
- Dubbo工作图
- 安装Zookeeper
- 整合Zookeeper、Dubbo、SpringBoot
-
- 1、引入依赖
- 2、配置dubbo
- 3、编写服务
- 4、消费者
- 四种架构
- 基础
- 安装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 完整讲解 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1728554540a1163668.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论