SpringBoot系列
从0到1,从入门到精通,配套Github演示源码,真正地去掌握Springboot核心相关开发技术点。使用 Springboot开发项目,会给我们带来非常美妙的开发体验,对开发效率的提升是全方位的。”一起学习,一起成长“,一份Springboot实战经验分享输出,期待与您交流。
贺佬湿
一个10年+资深IT互联网老司机,终身学习者。从0到1负责过百亿GMV电商平台的整体架构设计,月GMV从1亿到10亿+,轻松玩转亿级用户流量。Github开源社区的优秀贡献者,开源项目数超过6个,Star数2k+。大到待过国内上市公司、世界500强外企公司,小到创过业,做过物联网、互联网广告、电商等行业赛道。有经历公司在一年内,从100人+,发展到1300人+的团队规模扩展,产研团队近300人,史上最年轻的高级技术总监、首席架构师。目前以技术合伙人在创业ING,做广告变现+跨境电商方向,欢迎交流~
展开
-
SpringBoot从入门到精通教程
对于SpringBoot,很多人咨询了我的研究学习资料来源,除官方文档外,特例完整整理一下自己的平时参考学习其他资料,以及分享实战项目源码和代码资源,供大家参考学习主要教程一、我的SpringBoot系列教程(2020.3更新)我的SpringBoot系列进阶教程(Github仓库源码地址)基于springboot 2.0.6.RELEASE版本的代码演示集合:SpringBo...原创 2018-08-25 04:04:35 · 138707 阅读 · 10 评论 -
SpringBoot从入门到精通教程(三十二)- MybatisPlus框架动态数据源用法(支持多个DB,动态切换数据源)
需求背景SpringBoot用法:MybatisPlus框架动态数据源用法(支持多个DB,动态切换数据源)简介dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器优势网上关于动态数据源的切换的文档有很多,核心只有两种:构建多套环境,优势是方便控制也容易集成一些简单的分布式事务,缺点是非动态...原创 2020-03-27 18:48:28 · 3332 阅读 · 2 评论 -
SpringBoot从入门到精通教程(三十一)- 爬虫框架集成
需求背景SpringBoot用法:爬虫框架集成业务场景以抓取“今日头条”新闻举例说明技术点1. 集成爬虫框架webmagic(更多了解webmagic,可以去官方地址)<dependency> <groupId>us.codecraft</groupId> <artifactId>webmagic-e...原创 2020-03-15 18:19:42 · 4545 阅读 · 0 评论 -
SpringBoot从入门到精通教程(三十)- 支付宝企业支付集成(五分钟集成)
需求背景SpringBoot用法:支付宝企业支付集成(五分钟集成)问题痛点通过SpringBoot框架,集成服务端支付宝企业支付接口,做到下载即用(填写好相关支付宝支付后台相关Key信息),最快五分钟集成成功,节省时间,同时也避免重复采坑。你也可能在此基础上优化代码,或者二次开发,希望对你有用。目前这套代码在生产环境中运行超过一年时间,已成功给用户支付打款超过两千万,长期稳...原创 2020-03-15 17:08:23 · 4828 阅读 · 0 评论 -
SpringBoot从入门到精通教程(二十九)- 微信企业支付集成(五分钟集成)
需求背景SpringBoot用法:微信企业支付集成(五分钟集成)问题痛点通过SpringBoot框架,集成服务端微信企业支付接口,做到下载即用(填写好相关微信支付后台相关Key信息),最快五分钟集成成功,节省时间,同时也避免重复采坑。你也可能在此基础上优化代码,或者二次开发,希望对你有用。目前这套代码在生产环境中运行超过一年时间,已成功给用户支付打款超过五千万,长期稳定运行,经过了线上长时间的验证。原创 2020-03-06 10:20:45 · 2550 阅读 · 0 评论 -
SpringBoot从入门到精通教程(二十八)- 动态修改日志输出级别用法
需求背景SpringBoot用法:动态修改日志输出级别问题痛点SpringBoot在 spring-boot-starter-actuator 模块中提供了日志相关的EndPoint,通过该EndPoint可以在项目运行时不需要重启服务就可以修改日志的打印级别,解决了以前修改日志打印级别必须要重启服务的烦恼。原创 2020-03-05 10:15:47 · 1585 阅读 · 0 评论 -
SpringBoot从入门到精通教程(二十七)- @Valid注解用法详解+全局处理器Exception优雅处理参数验证用法
问题痛点用Spring 框架写代码时,写接口类,相信大家对该类的写法非常熟悉。在写接口时要写效验请求参数逻辑,这时候我们会常用做法是写大量的 if 与 if else 类似这样的代码来做判断.......这样的代码如果按正常代码逻辑来说,是没有什么问题的,不过按优雅来说,简直糟糕透了。不仅不优雅,而且如果存在大量的验证逻辑,这会使代码看起来乱糟糟,大大降低代码可读性。那么有没有更好的方法能够简化这个过程呢?答案当然是有,推荐的是使用@Valid注解来帮助我们简化验证逻辑。原创 2020-03-04 10:51:14 · 2538 阅读 · 0 评论 -
SpringBoot从入门到精通教程(二十六)- 全局header/body接口请求参数+Swagger2集成/接口规范用法
需求背景在实际服务端API接口项目开发过程中,会有一些项目约定规范用法Tips,这次整理分享一下我过去使用过的,希望对你有用问题痛点项目开发时,没有统一参数规范约定,App对接成本、代码维护成本太高 过去开发人员写代码时,要写很多必须要写但是又重复的代码,比如构造函数、getter/setter方法等 一个接口返回时,无论内部是返回成功、失败、异常等,都统一返回了http状态码...原创 2019-11-30 02:50:35 · 4152 阅读 · 0 评论 -
SpringBoot从入门到精通教程(二十五)- Mybatis-Plus快速开发框架用法
需求背景Springboot集成:Mybatis-Plus快速开发框架用法框架介绍MyBatis-Plus 荣获【2018年度开源中国最受欢迎的中国软件】 TOP5,为简化开发而生框架有以下三个特点:1. 润物无声只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。2. 效率至上只需简单配置,即可快速进行 CRUD 操作,从而节省大量时间。3. 丰富功...原创 2019-10-25 01:29:30 · 2817 阅读 · 0 评论 -
SpringBoot从入门到精通教程(二十四)- Swagger集成用法
需求背景Springboot集成:Swagger集成用法,本篇介绍Swagger2问题痛点手写api文档的几个痛点:当接口文档需要更新时,需要再次发送一次给前端,文档更新交流不是非常及时,比如showdoc 不能直接在线测试接口,通常需要使用其他工具,比如postman 接口文档太多,不好管理Swagger就是用来解决这个问题(Swagger也不是说就最好,比如不好的点...原创 2019-09-21 16:27:01 · 2702 阅读 · 0 评论 -
SpringBoot从入门到精通教程(二十三)- Oauth2+JWT集成/SpringSecurity
需求背景本篇文章讲解如何通过Springboot2集成验证服务JWT Token,以及资源服务的用法(更多官方关于 Oauth2)此篇在《Oauth2+Token详细用法/SpringSecurity》基础上修改而来,可先去阅读此篇文章以下内容:主要是讲解用法差异的地方OAuth2术语JWT JSON Web Token 身份令牌 Oauth2 密码授权流程在...原创 2019-09-20 01:04:33 · 2784 阅读 · 0 评论 -
SpringBoot从入门到精通教程(二十二)- Oauth2+Token详细用法/SpringSecurity
需求背景本篇文章讲解如何通过Springboot2集成验证服务Token,以及资源服务的用法(更多官方关于 Oauth2)概要主要使用Spring Boot2和SpringSecurity5OAuth2术语资源拥有者Resource Owner 用户授权哪些应用程序,能够去访问资源信息等,访问受限于作用域 资源服务Resource Server 一个在客户端拥...原创 2019-09-18 09:43:17 · 4583 阅读 · 0 评论 -
SpringBoot从入门到精通教程(二十一)- MongoDB集成用法
需求背景Springboot集成:Mongodb实现技术点1. 集成mongodb依赖组件<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifa...原创 2019-09-11 09:21:42 · 1581 阅读 · 0 评论 -
SpringBoot从入门到精通教程(二十)- 分布式锁用法(基于Redis实现)
需求背景Springboot集成分布式锁实现:基于Redis实现。通过使用Spring Integration它提供的全局锁实现,同时,它还提供了其他存储的分布式锁实现:如Gemfire,JDBC,Zookeeper等。代码演示1. 项目目录结构:2.pom.xml依赖组件<?xml version="1.0" encoding="UTF-8"?>&l...原创 2019-08-29 14:36:57 · 2406 阅读 · 0 评论 -
SpringBoot从入门到精通教程(十九)- API接口防刷机制
需求背景Springboot接口防刷机制:通过秘钥生成签名,校验请求源合法性,不同源可以设置不同的秘钥业务场景:可用于第三方业务系统回调接口,比如s2s场景下(Server端也可以利用ip白名单,不做签名校验也可以) 可用于一些App端接口发送请求校验(无token下)代码演示1. 项目目录结构:2. 利用签名工具类:SignUtil.javapackage...原创 2019-08-28 11:38:59 · 3398 阅读 · 1 评论 -
SpringBoot从入门到精通教程(十八)- 全局异常处理
需求背景Springboot全局异常处理用法,自定义error请求返回结果,前端可以统一处理服务端返回的内容解决问题如果不处理,当发生异常时,程序而又未及时处理捕获的话,前端会收到下面的返回结果,而日志文件中也记录不到了代码演示1. 项目目录结构:2. 新建GlobalExceptionHandler.java文件package com.md.demo;...原创 2019-08-28 10:58:59 · 2033 阅读 · 0 评论 -
SpringBoot从入门到精通教程(十七)- 日志异步化处理用法
SpringBoot从入门到精通教程(十七)- 日志异步化处理用法Springboot集成Logback日志框架:日志异步化处理用法原创 2019-08-27 15:04:57 · 1788 阅读 · 0 评论 -
SpringBoot从入门到精通教程(十六)- ELK日志集成
SpringBoot从入门到精通教程(十六)- ELK日志集成Springboot集成Logback日志框架,同时把日志写入ELK实时日志系统中,便于统一查找和分析日志(ELK学习教程)原创 2019-08-27 14:50:37 · 2167 阅读 · 0 评论 -
SpringBoot从入门到精通教程(十五)- Logback日志框架集成
SpringBoot从入门到精通教程(十五)- Logback日志框架集成Springboot集成Logback日志框架,记录应用相关日志,输出落地到文件中原创 2019-08-27 14:24:15 · 2275 阅读 · 0 评论 -
SpringBoot从入门到精通教程(十四)- Druid连接池集成
SpringBoot从入门到精通教程(十四)- Druid连接池集成Springboot集成Druid连接池集成,来自阿里的数据库连接池,Druid加入了日志监控,可以很好的监控DB池连接和SQL的执行情况等。原创 2019-08-23 17:27:01 · 2299 阅读 · 0 评论 -
SpringBoot从入门到精通教程(十三)- 全局唯一ID/分布式ID解决方案
SpringBoot从入门到精通教程(十三)- 全局唯一ID/分布式ID解决方案分布式ID解决方案1. Springboot集成,使用全局唯一ID(基于Snowflake算法)原创 2019-08-23 16:09:40 · 3987 阅读 · 0 评论 -
SpringBoot从入门到精通教程(十二)- Dubbo服务提供者、服务消费者整合/Zookeeper集成(最终篇)
SpringBoot从入门到精通教程(十二)- Dubbo服务提供者、服务消费者整合/Zookeeper集成(最终篇)Springboot集成Dubbo框架:1、服务提供者模块、服务消费者模块整合2、Zookeeper配置(安装教程)3、Dubbo Admin用法(安装教程)原创 2019-08-23 15:13:53 · 2403 阅读 · 0 评论 -
SpringBoot从入门到精通教程(十一)- 分布式缓存Redis整合/解决中文乱码问题
SpringBoot从入门到精通教程(十一)- 分布式缓存Redis整合/解决中文乱码问题1. Springboot集成Redis,以及一些常用api用法2. 统一封装工具类,解决中文乱码问题原创 2019-08-23 14:20:53 · 3262 阅读 · 0 评论 -
SpringBoot从入门到精通教程(十)- Docker集成+容器化部署详解/下篇-使用Dockerfile进行构建
SpringBoot从入门到精通教程(十)- Docker集成+容器化部署详解/下篇-使用Dockerfile进行构建基本用法:使用Maven插件构建Docker镜像,通过Dockerfile进行构建,然后可以结合Jenkins一起使用(Jenkins教程)原创 2019-08-16 14:53:46 · 2140 阅读 · 3 评论 -
SpringBoot从入门到精通教程(九)- Docker集成+容器化部署详解/上篇
SpringBoot从入门到精通教程(九)- Docker集成+容器化部署详解/上篇基本用法:使用Maven插件构建Docker镜像,然后可以结合Jenkins一起使用(Jenkins教程)原创 2019-08-15 21:02:36 · 3520 阅读 · 1 评论 -
SpringBoot从入门到精通教程(八)- 多环境配置文件用法
需求背景在没有使用配置中心的情况下,其实默认在Springboot2框架中,是支持了多个配置文件,允许在不同环境下切换的了,可以去结合Jenkins/Docker来使用(这部分内容后续会更新)准备内容1. 准备两个Mysql实例,db1和db22. 两份数据库初始化init.sql脚本内容(或Docker安装MySQL数据库)db1-init.sql-- for db...原创 2019-08-15 17:24:33 · 3150 阅读 · 0 评论 -
SpringBoot从入门到精通教程(七)- Mysql多数据源和Hikari用法详解
需求背景在Springboot2框架中,常常需要用到以下两个功能点:1. Mysql多数据源集成2. Hikari 连接池用法详解准备内容1. 准备两个Mysql实例2.数据库初始化init.sql脚本内容(或Docker安装MySQL数据库)db1-init.sql-- for db1drop table city1;CREATE TABLE `c...原创 2019-06-29 20:16:36 · 6806 阅读 · 1 评论 -
SpringBoot从入门到精通教程(六)- Mysql和Mybatis+XML用法详解
需求背景在Springboot2框架中,使用Mysql和Mybatis功能:1. Mysql+Datasource集成2. Mybatis+XML用法详解技术点主要使用了两个包组件1. mysql-connector-java,Mysql数据库集成包2.mybatis-spring-boot-starter,Mybatis集成包3. 数据库初始化init.sq...原创 2019-06-21 20:26:32 · 6048 阅读 · 0 评论 -
SpringBoot从入门到精通教程(五)- 内嵌Tomcat自定义配置用法
需求背景针对框架内嵌的Tomcat,实现自定义配置用法:1. 可以通过application.yml文件实现2. 可以通过代码,实现自定义配置技术点两个技术点1. .yml文件格式用法配置Tomcat参数,框架自动识别和加载2.TomcatServletWebServerFactory对象自定义实现Tomcat配置功能介绍功能技术点:1. T...原创 2019-06-14 18:24:57 · 6643 阅读 · 0 评论 -
SpringBoot从入门到精通教程(四)- @Scheduled定时器用法和场景案例分析
需求背景日常项目开发中,我们经常会遇到以下几种特定需求:1. 一些事情,需要在指定时间执行2. 一些事情,需要在指定时间执行后,再间隔指定时间重复执行3. 一些事情,需要在启动任务之后,隔多久才执行Springboot2中提供了@Scheduled注解,可以定时执行,比如定时检查某些功能是否正常,或定时备份某份数据等,它可以帮你完成这些定时操作。技术点主要使用了两个注解...原创 2019-05-23 00:11:14 · 5911 阅读 · 5 评论 -
SpringBoot从入门到精通教程(三)- RocketMQ集成和场景案例分析
需求背景RocketMq是一个由阿里巴巴开源的消息中间件,在设计上借鉴了Kafka,其2012年开源,2017年成为Apache顶级项目。一般MQ适用场景如下:1. 流量削峰,提升系统高并发处理能力,比如秒杀场景2. 异步处理,应用解耦,提高系统吞吐量RocketMQ基础组件:1. Producer是消息生产者2. Consumer是消息消费者3. Topic是消息传递...原创 2019-05-21 16:45:11 · 7902 阅读 · 0 评论 -
SpringBoot从入门到精通教程(二)- 拦截器用法和场景案例分析
需求背景在项目中需要全局拦截用户请求,针对一些特定请求,可进行特殊业务处理和请求过滤技术点主要使用了两个对象1.HandlerInterceptorAdapter对象(org.springframework.web.servlet.handler.HandlerInterceptorAdapter)2. WebMvcConfigurationSupport对象(org.s...原创 2019-05-15 19:21:01 · 10964 阅读 · 2 评论 -
SpringBoot从入门到精通教程(一)- 如何进行单元测试编写和场景案例分析
需求背景1. 可以进行自动化测试,配合CI,在项目发布前可以验证功能2. 尽可能早发现问题,及时修复解决技术点主要使用了两个注解1.@RunWith2. @SpringBootTest案例说明场景案例分析:1.普通Java测试,比如配置参数加载,静态方法返回值等2.普通Web接口测试3.业务服务层代码测试4.使用MockMvc测试接口...原创 2019-05-14 21:15:17 · 27023 阅读 · 0 评论