![](https://img-blog.csdnimg.cn/20200312101023636.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Spring Boot 教程合集
Spring Boot 教程合集技术文章,带你体验 Spring Boot 从入门到精通的实战训练,配套对应的示例代码:<a href="https://github.com/cxy35/spring-boot-samples">点这里直达</a>
程序员35
关注微信公众号【程序员35】,获取最新技术干货,畅聊 #程序员的35,35的程序员# 。独立站点:https://cxy35.com
展开
-
Spring Boot 整合 Elasticsearch
文章目录1 概述1.1 简介1.2 基本概念1.3 常用命令2 创建工程并配置3 使用4 测试学习在 Spring Boot 中 Elasticsearch。在 Spring Boot 中,使用的 Elasticsearch 实际上是 Spring Data Elasticsearch , Spring Data 是 Spring 家族的一个子项目,用于简化 SQL 和 NoSQL 的访问,在 Spring Data 中,只要你的方法名称符合规范,它就知道你想干什么,不需要自己再去写 SQL 。1 概述原创 2020-10-16 18:13:06 · 938 阅读 · 0 评论 -
Spring Boot 整合 MyBatis 通用 Mapper(TkMybatis)
学习在 Spring Boot 中整合 MyBatis 通用 Mapper(TkMybatis)。通用 Mapper 是一个可以实现任意 MyBatis 通用方法的框架,项目提供了常规的增删改查操作以及 Example 相关的单表操作。通用 Mapper 是为了解决 MyBatis 使用中 90% 的基本操作,使用它可以很方便的进行开发,可以节省开发人员大量的时间。1 概述通用 Mapper 都可以极大的方便开发人员。可以随意的按照自己的需要选择通用方法,还可以很方便的开发自己的通用方法。极其方便的使原创 2020-05-25 10:43:55 · 1192 阅读 · 0 评论 -
瞬间几千次的重复提交,我用 Spring Boot + Redis 扛住了(实现接口自动幂等)
使用 Spring Boot + Redis + Interceptor + 自定义 Annotation 实现接口自动幂等,解决接口重复提交问题。转载自:https://www.jianshu.com/p/c806003a85301 前言在实际的开发项目中,一个对外暴露的接口往往会面临很多次请求,我们来解释一下幂等的概念:任意多次执行所产生的影响均与一次执行的影响相同。按照这个含义,最终的...转载 2020-04-22 16:11:09 · 233 阅读 · 0 评论 -
Spring Boot 整合 DevTools(实现热部署)
Spring Boot 整合 DevTools ,实现类文件和静态资源文件的热部署,只需要添加 spring-boot-devtools 依赖就可以轻松实现。1 自动编译配置在 Eclipse 中文件修改后,保存就会自动编译,但在 IDEA 中没有显示的文件保存操作,因此默认情况下文件修改后不会自动编译,需要手动编译(快捷键: Ctrl + F9 ),从而触发项目自动重启。当然我们可以通过配...原创 2020-04-07 14:19:13 · 1214 阅读 · 0 评论 -
Spring Boot 整合邮件发送
学习在 Spring Boot 中发送邮件,使用对应的自动化配置类,实现非常方便。1 邮件概述常用的邮件协议有 SMTP、POP3、IMAP 。现在假设从 aaa@qq.com 发送邮件到 111@163.com ,邮件投递过程如下:aaa@qq.com 先将邮件投递到腾讯的邮件服务器。腾讯的邮件服务器将我们的邮件投递到网易的邮件服务器。111@163.com 登录网易的邮件服务器查...原创 2020-04-02 16:43:33 · 823 阅读 · 0 评论 -
Spring Boot 整合 Spring Security + OAuth2
学习在 Spring Boot 中整合 Spring Security 和 OAuth2 。1 OAuth2 概述1.1 OAuth2 简介OAuth 是一个开放标准,该标准允许用户让第三方应用访问该用户在某一网站上存储的私密资源(如头像、照片、视频等),而在这个过程中无需将用户名和密码提供给第三方应用。实现这一功能是通过提供一个令牌(token),而不是用户名和密码来访问他们存放在特定服...原创 2020-04-02 16:00:37 · 5700 阅读 · 0 评论 -
Spring Boot 整合 Spring Security + JWT(实现无状态登录)
学习在 Spring Boot 中整合 Spring Security 和 JWT ,实现无状态登录,可做为前后端分离时的解决方案,技术上没问题,但实际上还是推荐使用 OAuth2 中的 password 模式。1 登录概述1.1 有状态登录有状态服务,即服务端需要记录每次会话的客户端信息,从而识别客户端身份,根据用户身份进行请求的处理,如 Tomcat 中的 Session 。例如:用户...原创 2020-04-02 15:58:57 · 2962 阅读 · 0 评论 -
Spring Boot 整合 Spring Security(使用 JSON 格式数据登录)
Spring Boot 整合 Spring Security ,默认的登录数据是通过 key/value 的形式来传递的,本文学习使用 JSON 格式数据登录。1 源码分析通过分析源码我们发现,默认的用户名密码提取在 UsernamePasswordAuthenticationFilter 过滤器中,部分源码如下:public class UsernamePasswordAuthentic...原创 2020-04-02 15:57:37 · 937 阅读 · 1 评论 -
Spring Boot 整合 Spring Security(配置登录/登出)
Spring Boot 整合 Spring Security ,配置登录/登出,如:登录接口,登录成功或失败后的响应等。1 创建工程创建 Spring Boot 项目 spring-boot-springsecurity-login ,添加 Web/Spring Security 依赖,如下:最终的依赖如下:<dependencies> <dependency...原创 2020-04-02 15:56:50 · 2677 阅读 · 0 评论 -
Spring Boot 整合 Spring Security(配置验证码)
Spring Boot 整合 Spring Security ,配置验证码。1 创建工程创建 Spring Boot 项目 spring-boot-springsecurity-verifycode ,添加 Web/Spring Security 依赖,如下:最终的依赖如下:<dependencies> <dependency> <...原创 2020-04-02 15:55:58 · 1053 阅读 · 0 评论 -
Spring Boot 整合 Spring Security(配置用户/角色-基于内存)
Spring Boot 整合 Spring Security 之后,默认用户名为 user ,密码在项目启动时打印在控制台。这个随机生成的密码,每次项目启动时都会变,不是很方便。我们可以自己配置 Spring Security 的用户和角色,有三种方式可以实现:通过 application.properties 配置文件配置在内存中。通过 Java 代码配置在内存中。配置在数据库中,然后通...原创 2020-04-02 15:54:23 · 1225 阅读 · 1 评论 -
Spring Boot 整合 Spring Security(初次体验)
通过本文体验 Spring Boot 整合 Spring Security 。 Spring Security 是 Spring 家族中的一个安全管理框架,但在 Spring Boot 出现之前,使用的没有 Shiro 多,因为在 SSM/SSH 项目中整合 Spring Security 比较麻烦,直到 Spring Boot 的出现。目前关于安全管理框架的整合模式一般有两种,一种是 SSM/S...原创 2020-04-02 15:53:12 · 217 阅读 · 0 评论 -
Spring Boot 整合 Shiro
学习在 Spring Boot 中用两种方式整合 Shiro 。虽然在 Spring Boot 中的安全管理框架主流是使用 Spring Security ,但使用 Shiro 技术上也是可行的。1 概述Spring Security 和 Shiro 的比较如下:Spring Security 是一个重量级的安全管理框架; Shiro 则是一个轻量级的安全管理框架。Spring Sec...原创 2020-03-25 08:36:48 · 159 阅读 · 0 评论 -
Spring Boot 整合 Spring Cache + Ehcache(实现数据缓存)
学习在 Spring Boot 中整合 Spring Cache + Ehcache ,实现数据的缓存。 Spring Cache 统一了缓存江湖的门面,它提供统一的接口,实现可以是 Redis 或 Ehcache 或其他支持这种规范的缓存框架,他们的关系类似于 JDBC 与各种数据库驱动,本文使用 Ehcache 实现。 Ehcache 也是 Java 领域比较优秀的缓存方案之一,但在 Redi...原创 2020-03-24 10:24:39 · 1017 阅读 · 0 评论 -
Spring Boot 整合 Spring Cache + Redis(实现数据缓存)
学习在 Spring Boot 中整合 Spring Cache + Redis ,实现数据的缓存。 Spring Cache 统一了缓存江湖的门面,它提供统一的接口,实现可以是 Redis 或 Ehcache 或其他支持这种规范的缓存框架,他们的关系类似于 JDBC 与各种数据库驱动,本文使用 Redis 实现。这种方式相对于自己手动通过 RedisTemplate 往 Redis 中缓存数据(...原创 2020-03-23 08:48:41 · 933 阅读 · 0 评论 -
Spring Boot 构建 Rest 服务(Jpa)
学习在 Spring Boot 中结合 Jpa 构建 Rest 服务,只需要几行代码就能快速实现一个 RESTful 风格的增删改查接口。1 概述在当前移动互联网大环境下,前后端分离开发越来越普及,一般是一套后台对应多个前端项目,此时 RESTful 就有了用武之地。 Spring Boot 中相关的注解主要有(其实在Spring MVC 中也能使用):@RestController@...原创 2020-03-22 09:22:04 · 436 阅读 · 0 评论 -
Spring Boot 整合 Swagger2
学习在 Spring Boot 中使用 Swagger2 实时生成在线接口文档,还支持接口测试。特别是在前后端分离开发时,可以说是一大神器。1 创建工程新建 Spring Boot 项目 spring-boot-swagger2 ,添加 Web 依赖。之后手动在 pom 文件中添加 Swagger2 相关的两个依赖,最终的依赖如下:<dependencies> <...原创 2020-03-21 14:35:58 · 366 阅读 · 0 评论 -
Spring Boot 配置定时任务(@Scheduled / Quartz)
学习在 Spring Boot 中如何配置定时任务。一般有两种方案,一种是使用 Spring 自带的定时任务处理器 @Scheduled 注解来实现(业务比较简单时),另一种是使用第三方框架 Quartz 来实现。1 @Scheduled新建 Spring Boot 项目 spring-boot-scheduled ,添加 Web 依赖,最终的依赖如下:<dependencies&g...原创 2020-03-19 09:42:22 · 2192 阅读 · 0 评论 -
Spring Boot 整合 Redis + Spring Session(实现 Session 共享)
学习在 Spring Boot 中整合 Redis + Spring Session ,实现 Session 共享。先来回顾下在 SSM 中使用 Spring Session 的配置,首先是 web.xml 配置代理过滤器,然后在 Spring 容器中配置 Redis,最后再配置 Spring Session ,步骤有些繁琐。下面来看下在 Spring Boot 中如何使用,比较起来你会发现超级简...原创 2020-03-18 09:17:40 · 744 阅读 · 0 评论 -
Spring Boot 整合 Redis
学习在 Spring Boot 中使用 Redis 来实现数据存储。在 Spring Boot 中,默认集成的 Redis 就是 Spring Data Redis ,默认底层的连接池使用了 lettuce ,可以自行修改为自己的熟悉的,例如 Jedis 。1 创建工程并配置新建 Spring Boot 项目 spring-boot-redis ,添加 Web/Redis 依赖,如下:之...原创 2020-03-17 08:48:10 · 209 阅读 · 0 评论 -
Spring Boot 配置静态资源
学习 Spring Boot 配置静态资源。1 Spring MVC 配置静态资源先来回顾下在 Spring MVC 中如何配置静态资源。使用 Spring MVC 时,静态资源会被拦截,需要添加额外的配置,一般在 spring-mvc.xml 中配置,如下:<mvc:resources mapping="/favicon.ico" location="favicon.ico" /&...原创 2020-03-14 10:47:24 · 360 阅读 · 0 评论 -
Spring Boot 整合 Jpa
学习在 Spring Boot 中使用 Jpa 来操作数据库。1 Jpa 简介Jpa(Java Persistence API) , Java 持久化 API ,它是一套 ORM 规范,而不是具体的实现。 Jpa 类似于 JDBC ,只提供规范,所有的数据库厂商提供实现(即具体的数据库驱动),在 Java 领域,大家熟知的 ORM(Object Relational Mapping) 框架可...原创 2020-03-14 10:41:15 · 182 阅读 · 0 评论 -
Spring Boot 整合 MyBatis 多数据源
学习在 Spring Boot 中使用 MyBatis 多数据源来操作不同的数据库。1 创建工程并配置新建 Spring Boot 项目 spring-boot-mybatismulti ,添加 Web/MyBatis/MySQL 依赖,如下:之后手动在 pom 文件中添加 Druid 数据库连接池依赖(Spring Boot 版本),最终的依赖如下:<dependencies&...原创 2020-03-14 10:40:02 · 213 阅读 · 0 评论 -
Spring Boot 整合 MyBatis
学习在 Spring Boot 中使用 MyBatis 来操作数据库。与 JdbcTemplate 相比,MyBatis 比较灵活,功能也很强大。在 Spring Boot 使用 MyBatis ,和 SSM 中相比简单的不得了。1 创建工程并配置新建 Spring Boot 项目 spring-boot-mybatis ,添加 Web/MyBatis/MySQL 依赖,如下:之后手动在...原创 2020-03-14 10:38:34 · 284 阅读 · 0 评论 -
Spring Boot 整合 JdbcTemplate 多数据源
学习在 Spring Boot 中使用 JdbcTemplate 多数据源来操作不同的数据库。JdbcTemplate 是 Spring 自带的,虽然功能没有 MyBatis 强大,但使用简单。1 创建工程并配置新建 Spring Boot 项目 spring-boot-jdbctemplatemulti ,添加 Web/JDBC/MySQL 依赖,如下:之后手动在 pom 文件中添加 ...原创 2020-03-14 10:36:41 · 315 阅读 · 0 评论 -
Spring Boot 整合 JdbcTemplate
学习在 Spring Boot 中使用 JdbcTemplate 来操作数据库。 JdbcTemplate 是 Spring 自带的,虽然功能没有 MyBatis 强大,但配置和使用简单。1 创建工程并配置新建 Spring Boot 项目 spring-boot-jdbctemplate ,添加 Web/JDBC/MySQL 依赖,如下:之后手动在 pom 文件中添加 Druid 数据...原创 2020-03-14 10:35:44 · 598 阅读 · 0 评论 -
Spring Boot 配置系统启动任务
学习如何在 Spring Boot 中配置系统启动任务。先来回顾下在普通的 web 项目中如何在项目启动的时做一些初始化操作,一般会自己定义一个 Listener 实现 ServletContextListener 接口,这样就能监听到项目的启动和销毁,并做相应的数据初始化和销毁操作,如下:public class MyServletContextListener implements Se...原创 2020-03-14 10:34:49 · 99 阅读 · 0 评论 -
Spring Boot 通过 CORS 解决跨域问题
学习在 Spring Boot 中通过 CORS 解决跨域问题。1 介绍先来了解下同源策略,它是由 Netscape 提出的一个著名的安全策略,是浏览器最核心,也最基本的安全功能,现在所有支持 JavaScript 的浏览器都会使用这个策略,同源是指协议、域名以及端口要相同。传统的跨域解决方案是 JSONP , JSONP 虽然能解决跨域但是有一个很大的局限性,那就是只支持 GET 请求,不...原创 2020-03-14 10:33:54 · 222 阅读 · 0 评论 -
Spring Boot 自定义异常处理
学习在 Spring Boot 如何实现自定义异常处理,及其中的原理。在 Spring Boot 中,关于异常的统一处理,可以使用 @ControllerAdvice ,具体见 Spring Boot 使用 @ControllerAdvice,也可以自己来定义异常处理方案。Spring Boot 有一个默认的异常页面,如下:上面提到了 /error 路径,会去寻找默认的异常页面。我们可以...原创 2020-03-14 10:32:56 · 256 阅读 · 0 评论 -
Spring Boot 使用 @ControllerAdvice
学习在 Spring Boot 如何使用 @ControllerAdvice 注解。它其实是 Spring MVC 提供的功能,是一个增强的 Controller ,主要可以实现三个方面的功能:全局异常处理、全局数据绑定、全局数据预处理。1 全局异常处理@ControllerAdvicepublic class MyControllerAdvice { @ExceptionHand...原创 2020-03-14 10:32:06 · 175 阅读 · 0 评论 -
Spring Boot 整合 JSON - Jackson/Gson/FastJson
学习 Spring Boot 整合 JSON - Jackson/Gson/FastJson 。1 Spring MVC 整合 JSON先来回顾下在 Spring MVC 中如何整合 JSON 。 Spring MVC 可以接收 JSON 参数,也可以返回 JSON 参数,这一切依赖于 HttpMessageConverter 。它可以将一个 JSON 字符串转为对象,也可以将一个对象转为...原创 2020-03-14 10:31:29 · 692 阅读 · 0 评论 -
Spring Boot 整合 Freemarker
学习 Spring Boot 整合页面模板 Freemarker 。1 Freemarker 简介Freemarker 是一个相当老牌的开源的免费的模版引擎。通过 Freemarker 模版,我们可以将数据渲染成 HTML 网页、电子邮件、配置文件以及源代码等。Freemarker 不是面向最终用户的,而是一个 Java 类库,我们可以将之作为一个普通的组件嵌入到我们的产品中。来看一张来自 ...原创 2020-03-14 10:30:05 · 265 阅读 · 0 评论 -
Spring Boot 整合 Thymeleaf
学习 Spring Boot 整合页面模板 Thymeleaf 。1 Thymeleaf 简介Thymeleaf 是新一代 Java 模板引擎,它类似于 Velocity 、 FreeMarker 等传统 Java 模板引擎,但是与传统 Java 模板引擎不同的是,Thymeleaf 支持 HTML 原型。它既可以让前端工程师在浏览器中直接打开查看样式,也可以让后端工程师结合真实数据查看显...原创 2020-03-14 10:29:08 · 398 阅读 · 0 评论 -
Spring Boot 自定义 Starter
认识 Spring Boot 中的自动化配置,并手把手带你写一个自己的 Starter 。1 认识 StarterSpring Boot 中的 Starter 为我们完成了很多自动化配置,使得我们可以很轻松的搭建一个生产级的开发环境。其实 Starter 并不难,都是 Spring + Spring MVC 中的基础知识点实现的,他的核心就是条件注解 @Conditional ,当 clas...原创 2020-03-14 10:28:23 · 137 阅读 · 0 评论 -
Spring Boot 单元测试
学习 Spring Boot 项目中的单元测试,实现 Service/Controller/JSON 测试。1 准备工作在 src/main/java 下相应的包中新建 Book 类,如下:public class Book { private Integer id; private String name; private String author; ...原创 2020-03-14 10:27:25 · 205 阅读 · 0 评论 -
Spring Boot 配置 yaml
学习 Spring Boot 项目中的配置文件( yaml 格式),如: application.yaml 。1 文件位置Spring Boot 项目中的配置文件 application.yaml 最常见的位置在 src/main/resources 目录下,其实共有 4 个默认位置能放,如下(优先级: 1 > 2 > 3 > 4 ):项目根目录下的 config 目录...原创 2020-03-14 10:24:24 · 987 阅读 · 0 评论 -
Spring Boot 配置 properties
学习 Spring Boot 项目中的配置文件( properties 格式),如: application.properties 。1 文件位置Spring Boot 项目中的配置文件 application.properties 最常见的位置在 src/main/resources 目录下,其实共有 4 个默认位置能放,如下(优先级: 1 > 2 > 3 > 4 ):...原创 2020-03-14 10:23:26 · 705 阅读 · 0 评论 -
Spring Boot 项目创建
3 种方式实现 Spring Boot 项目创建。1 官方网站在线创建官方网站:https://start.spring.io/,如下:配置说明如下:Project:项目构建工具,这里选择 Maven ,Gradle 一般在 Android 中使用较多。Language:开发语言,这里选择 Java 。Spring Boot:版本,一般用最新稳定版。Project Metada...原创 2020-03-14 10:22:47 · 187 阅读 · 0 评论