SpringBoot + SpringCloud + SpringSecurity学习过程中的源码汇总,沉淀记录下学习历程
所有博文集中发布在个人博客网站 : 一灰灰Blog-Spring
大致规划的内容包括以下章节,希望能用半年到一年(严重超期)的时间完成....
I. 基础篇
- db读写
- 基本配置,数据源等
- jdbcTemplate
- jpa
- 项目工程: spring-boot/102-jpa
- mybatis
- mybatis plus
- jooq
- influxdb 时序数据库 - 项目工程: spring-boot/130-influxdb , spring-boot/131-influxdb-java
- Mongo
- 项目工程
- 基础环境 spring-boot/110-mongo-basic
- mongoTemplate使用姿势 spring-boot/111-mongo-template
- 项目工程
- Redis读写
- 项目工程:
- 基本环境构建 spring-boot/120-redis-config
- jedis环境构建 spring-boot/121-redis-jedis-config
- redisTemplate使用姿势 spring-boot/122-redis-template
- lettuce环境构建 spring-boot/123-redis-lettuce-config
- redis集群实例工程 spring-boot/124-redis-cluster
- 排行榜应用实例工程 spring-case/120-redis-ranklist
- 站点统计应用实例工程 spring-case/124-redis-sitecount
- 项目工程:
- MemCache
- SpringCache
- 定时器
- 搜索 ES
- 搜索 Solr
- 过滤器
- 项目工程:
- 基本使用姿势:spring-boot/210-web-filter
- filter优先级: spring-boot/210-web-filter-order
- 项目工程:
- 拦截器
- Get/Post/Put/Delete等http方法支持
- 参数绑定(get/post参数解析,自定义参数解析器)
- 返回相关
- 异常处理
- 安全相关(SQL/XSS等注入)
- 跨域处理
- WebSocket
- reactive
- 注册中心
- 配置中心
- 网关路由
- 负载均衡
- 熔断器
- 链路监控
- 安全模块
- oauth
- admin
- xxx
通过bean的基础知识,实现动态的bean注册于销毁,通过定义接口,模拟生成mock服务,用于后续测试的演示工程, 工程源码: https://github.com/liuyueyi/spring-boot-demo/tree/master/spring-boot/006-dynamicbean
SPI在实际的业务开发中,可能很多童鞋都没有接触过,如果看一些开源项目如logback, dubbo... 会发现这个技术应用还是比较广泛的;这篇文章主要是在学习FactoryBean之后的萌发的,通过工程bean,来时先SPI的效果,这里也用到了代理的相关知识点,对于希望理解SPI、代理模式和FactoryBean的童鞋,还是比较有用的, 工程源码: https://github.com/liuyueyi/spring-boot-demo/tree/master/spring-case/000-spi-factorybean
排行榜可以说大量的出现在我们的视线中,那么你真的知道如何实现一个排行榜的功能么?如何保证排行榜的实时刷新,快速获取自己的排名?这篇文章就是redis学习后的典型应用,通过zset来实现排行榜功能,源码为:https://github.com/liuyueyi/spring-boot-demo/tree/master/spring-case/120-redis-ranklist
日志可以说是后端定位问题的神器,没有日志如何找bug?但是埋点、写日志对于后端来说,就不那么友好了。这篇文章是在AOP学习之后的应用,尽量少侵入的方式,实现服务相应相关日志,主要是提供一种解耦的日志输出思路,源码可见: https://github.com/liuyueyi/spring-boot-demo/tree/master/spring-boot/011-aop-logaspect
站点统计uv,pv 可以说是一个非常有意思的场景了,如何实现呢?我希望统计我的网站,总访问量,访问人数,每个人的访问排名,每天的pv/uv统计,找到我的网站中最受大家欢迎的页面,可以怎么实现?学完redis之后,忽然发现,redis的几个数据结构貌似可以搞一搞,实现这个功能,所以就有了这篇应用文章,源码为: https://github.com/liuyueyi/spring-boot-demo/tree/master/spring-case/124-redis-sitecount
本节主要内容包括如何使用配置文件中的配置信息,配置文件中配置参数的内引用方式,刷新配置的数段以及配置变更的监听,配置参数的优先级问题,多环境中如何选用配置文件等相关内容
- 180919-SpringBoot基础篇配置信息之如何读取配置信息
- 180920-SpringBoot基础篇配置信息之多环境配置信息
- 180921-SpringBoot基础篇配置信息之自定义配置指定与配置内引用
- 180922-SpringBoot基础篇配置信息之配置刷新
- 180925-SpringBoot基础篇配置信息之默认配置
- 191214-SpringBoot系列教程自动配置选择生效
日志作为后端码农的调优、bug定位、数据分析等问题的杀手锏,可以说是每个后端都需要掌握的技能,下面主要介绍的是如何配置日志文件以及配置参数的解读
bean作为Spring生态中的基石存在,可以说在Spring体系中,一切都是bean;因此如何定义和使用Bean可以说是正确入门Spring的门槛了
- 181009-SpringBoot基础篇Bean之基本定义与使用
- 181012-SpringBoot基础篇Bean之自动加载
- 181013-SpringBoot基础篇Bean之动态注册
- 181018-SpringBoot基础篇Bean之条件注入@Condition使用姿势
- 181019-SpringBoot基础篇Bean之@ConditionalOnBean与@ConditionalOnClass
- 181019-SpringBoot基础篇Bean之条件注入@ConditionalOnProperty
- 181019-SpringBoot基础篇Bean之条件注入@ConditionalOnExpression
- 191023-SpringBoot系列教程之Bean加载顺序之错误使用姿势辟谣
- 191029-SpringBoot系列教程之Bean之指定初始化顺序的若干姿势
- 181017-SpringBoot应用篇Bean之注销与动态注册实现服务mock
- 181024-SpringBoot应用篇之FactoryBean及代理实现SPI机制的实例
- 191213-SpringBoot应用篇之从0到1实现一个自定义Bean注册器
AOP与IOC作为Spring最主要的两个特性,这里主要介绍下AOP的使用姿势以及一些需要注意的特性
java后端,不得不打交道的就是DB了,有常见的关系型数据库如MySql;也有一些其他的如文档数据库MongoDB, 时序数据库InfluxDB等;不同的数据库对应不同的应用场景,也因此有不同的使用姿势;总的来说,针对DB相关,需要关注的无法下面一些
-
db的相关配置(即环境搭建)
-
增删改查(CURD)
-
数据库事物,分布式的一致性问题
-
读写锁,悲观锁、乐观锁等相关业务场景的支持问题
-
大数据场景下的支持(分库分表?)
-
一些辅助DB操作的开源库的使用(如mybatis,jooq,herbinate等)
redis 更常见的是作为服务的缓存来使用的,除此之外,也适用于做一些其他更富有功能特性的场景,因此对于redis而言,除了掌握基本的数据读写之外、还需要富有一些创造性的想象力
- 使用Redis来实现计数器
- 使用Redis来实现实时排行榜
- 使用Redis实现分布式锁
- ...
- 181029-SpringBoot高级篇Redis之基本配置
- 181101-SpringBoot高级篇Redis之Jedis配置
- 181108-SpringBoot高级篇Redis之String数据结构的读写
- 181109-SpringBoot高级篇Redis之List数据结构使用姿势
- 181202-SpringBoot高级篇Redis之Hash数据结构使用姿势
- 181211-SpringBoot高级篇Redis之Set数据结构使用姿势
- 181212-SpringBoot高级篇Redis之ZSet数据结构使用姿势
- 190927-SpringBoot系列教程之Redis集群环境配置
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的,比较与传统的mysql,它可以很方便的插入文档,文档内部可以各种嵌套,用于一次获取各种关联数据非常方便,当然作为db,我们首先需要了解的依然是增删改查,因此主要内容将包括
-
基本配置
-
增删改查
-
索引相关
-
...
hibernate来操作db的系列教程,主要介绍如何根据方法命名方式来实现sql的效果
-
基本的CURD
-
JQL用法 ...
易错知识点
web系列博文列表,主要介绍web应用搭建的基本知识点,包括但不限于
-
基本环境搭建
-
各种请求姿势的支持
-
web三大组件
-
web安全等
-
websocket/reactive ...
-
190213-SpringBoot文件上传异常之提示The temporary upload location xxx is not valid
应用实战篇
对互联网而言,搜索不可或缺,特别是现在讲究什么人工智能,机器学习,对于搜索,推荐,分类聚类什么的也都成了常见的名词,在企业级搜索中,常用的两个开源项目有solr和es,我们将主要介绍下,他们的基本配置与使用姿势
-
基本配置
-
增删改查
-
索引相关
-
...
记录SpringSecurity相关的所有技术文章,分类汇总如下,持续更新中
简单抽象的说一下SpringSecurity它的定义
- 很🐂的认证和访问权限校验框架
那么具体能干嘛?
- 用户登录认证:用户名+密码登录,确定用户身份
- 用户访问鉴权(常见的ACL访问控制列表,RBAC角色访问控制):判定是否有权限访问某个资源
- 安全保护(CSRF跨站点攻击,Session Fixation会话固定攻击…)
相关博文
拒绝单机,欢迎start或者加好友支持
尽信书则不如,已上内容,一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激
- 微博地址: 小灰灰Blog
- QQ: 一灰灰/3302797840
- WeChat: 一灰/liuyueyi25
公众号&博客
打赏码