
SpringBoot实战源码全家桶
文章平均质量分 91
本专栏重点围绕最新版本Spring Boot 2.x进行基础知识点、实战功能及源代码解析进行详细讲解,保持长期持续更新。特点:与网络搜索到的过时的文章不同,本系列均由作者亲自试验,编写用例,阅读源代码等途径为大家撰写的一手资料。
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
程序新视界
个人公众号【程序新视界】,一个硬技术,软实力同步提升的平台。《Spring Boo技术内幕:架构设计与实现原理》作者,《深入以太坊智能合约开发》联合作者之一。主要从事于三方支付行业。
展开
-
SpringBoot2.x系列教程(七十二)Spring Boot配置文件数据也可以轻松加密?
在实践中,项目的某些配置信息是需要进行加密处理的,以减少敏感信息泄露的风险。比如,在使用Druid时,就可以基于它提供的公私钥加密方式对数据库的密码进行加密。但更多时候,比如Redis密码、MQ密码等敏感信息,也需要进行加密,此时就没那么方便了。本篇文章给大家介绍一款Java类库Jasypt,同时基于Spring Boot项目来演示一下如何对配置文件信息进行加密。一个简单的SpringBoot项目我们先来创建一个简单的Spring Boot项目,构建一个加密数据运用的场景。无论通过Idea或官网等方原创 2021-09-30 09:03:36 · 925 阅读 · 0 评论 -
SpringBoot2.x系列教程(七十一)Spring Boot Actuator,每一个端点都有案例
前言在微服务系统架构中,服务的监控是必不可少的。目前大多数微服务应用又是基于Spring Cloud系列,也可以说是基于Spring Boot系列的。此时使用Spring Boot Actuator来进行微服务的监控,不仅功能全面,而且非常方便。在上篇文章《Spring Boot Actuator集成,难的是灵活运用!》中我们已经介绍了如何将Actuator集成到Spring Boot项目中,并且介绍了如何自定义Endpoint(端点)。有朋友留言说不够深入,那么,本篇文章呢,我们将介绍Actuator原创 2021-07-13 22:50:08 · 534 阅读 · 0 评论 -
SpringBoot2.x系列教程(七十)Spring Boot Actuator集成及自定义Endpoint详解
前言曾经看到Spring Boot Actuator这个框架时,一直在想,它到底有什么作用呢?虽然知道它提供了很多端点,有助于应用程序的监控和管理,但如果没有直接的实践案例,还是很难有说服力的。直到上篇文章《微服务架构:Nacos本地缓存 PK 微服务优雅下线》中讲到可以利用其中Actuator定义的端点来达到微服务的优雅下线效果,才发现Actuator是真的很有用。那么本文便基于Spring Boot系统如何集成Actuator,如何使用,以及如何自定义一个端点(Endpoint)来展开。Spri原创 2021-07-12 07:00:13 · 1113 阅读 · 0 评论 -
SpringBoot2.x系列教程(六十九)Spring Boot整合Shiro,两种方式实战总结(含源码)
Shiro是历史悠久的权限管理框,简单易用,易用集成,同时权限管理也是每个项目必不可少的功能。Spring Boot是Java领域炙手可热的脚手架框架。今天这篇文章就带大家将这两个框架进行整合。通常Spring Boot中整合Shiro,有两种方案:第一,基于原生API进行整合;第二,基于Shiro官方Starter整合。整体而言,官方Starter整合并没有方便很多,因此,本文主要以原则API进行整合,下面就来看看具体的整合方式。创建Spring Boot项目创建Spring Boot项目通常有原创 2021-01-27 20:02:55 · 939 阅读 · 2 评论 -
SpringBoot2.x系列教程(六十八)Spring Boot集成Redis的坑,踩了!
最近项目中使用SpringBoot集成Redis,踩到了一个坑:从Redis中获取数据为null,但实际上Redis中是存在对应的数据的。是什么原因导致此坑的呢?本文就带大家从SpringBoot集成Redis、所踩的坑以及自动配置源码分析来学习一下SpringBoot中如何正确的使用Redis。SpringBoot集成Redis在SpringBoot项目中只需在pom文件中引入Redis对应的starter,配置Redis连接信息即可进行使用了。pom依赖引入:<dependency>原创 2020-12-15 11:37:11 · 1960 阅读 · 2 评论 -
SpringBoot2.x系列教程(六十七)Spring Boot注入RestTemplate及源码解析
引入SpringBoot本来就支持REST服务,因此在SpringBoot项目之间经常需要通过REST的形式来相互调用。本文以具体的实例带大家了解一下SpringBoot中怎么使用RestTemplate进行接口调用。同时,会讲解部分相关源码。RestTemplate的实例化RestTemplate实例通常需要自己进行定制,SpringBoot相关的自动配置bean。但是,SpringBoot提供了自动配置的RestTemplateBuilder,可以用它来创建RestTemplate实例。那么,Sp原创 2020-12-10 14:41:40 · 1479 阅读 · 0 评论 -
SpringBoot2.x系列教程(六十六)Spring Boot快速集成RocketMQ实战教程
前言RocketMQ是目前主流的消息中间件之一,并且自身就支持分布式功能。最初由阿里巴巴团队开发,并且经历过双十一等海量消息场景的考验,后捐赠给Apache开源基金会,这也是为什么我们经常听说RocketMQ是阿里巴巴的消息中间件,项目却在Apache的顶级项目中。网络上通过SpringBoot集成RocketMQ的教程很多,但大多数都无法做到快速、通用的进行集成。本篇文章带大家快速完成基于Spring Boot的集成使用,同时针对一些集成过程中的概念和使用方法以实例进行讲解。RocketMQ的部署原创 2020-11-24 21:15:59 · 1464 阅读 · 0 评论 -
SpringBoot2.x系列教程(六十五)SpringBoot扫描其他项目的几种方案
最近接手一套基于SpringBoot项目,对项目进行重构调整,将公共部分抽离成子项目。在实践的过程中,发现抽离之后的模板中组件并没有被初始化。于是将排查解决过程中搜集到的方案及知识汇总分享给大家。问题原因问题的原因很简单,因多套系统的package命名不一致。比如业务系统的包命名为com.abc.xx,而公共(common)部分的包命名为com.efg.xx,引入公共jar包时默认是无法初始化的。对于SpringBoot项目,我们知道扫描的路径从启动类所在包开始,扫描当前包及其子级包下的所有文件。上原创 2020-10-18 07:46:27 · 3752 阅读 · 3 评论 -
SpringBoot2.x系列教程(六十四)SpringBoot基于jar包启动核心原理及流程详解
得益于SpringBoot的封装,我们可以只通过jar -jar一行命令便启动一个web项目。再也不用操心搭建tomcat等相关web容器。那么,你是否探究过SpringBoot是如何达到这一操作的呢?只有了解了底层实现原理,才能更好的掌握该项技术带来的好处以及性能调优。本篇文章带大家聊一探究竟。打包的核心方法Spring Boot项目的pom.xml文件中默认使用如下插件进行打包:<build> <plugins> <plugin>原创 2020-10-17 11:13:11 · 804 阅读 · 0 评论 -
SpringBoot2.x系列教程(六十三)基于Spring Boot快速实现发送邮件功能
邮件在项目中经常会被用到,比如用邮件发送通知。比如,通过邮件注册、认证、找回密码、系统报警通知、报表信息等。本篇文章带大家通过SpringBoot快速实现一个发送邮件的功能。邮件协议下面先简单了解一下常见的邮件协议。常用的电子邮件协议有SMTP、POP3、IMAP4,它们都隶属于TCP/IP协议簇,默认状态下,分别通过TCP端口25、110和143建立连接。SMTP协议SMTP的全称是 “Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址原创 2020-08-19 08:30:33 · 3437 阅读 · 1 评论 -
SpringBoot2.x系列教程(六十二)SpringBoot集成ActiveMQ实例详解
在项目开发的过程中我们经常会遇到类似的业务场景:用户申请提现,后台进行账务处理、发送提现短信、调用银行打款通道。在这个过程中调用三方通道(短信或银行通道)都比较耗时,同时账务处理可能也是由专门的账务系统进行处理。那么,为了提高并发和相应速度,后面的三个操作都可以通过异步进行处理。这就用到了消息队列。消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题,实现高性能、高可用、可伸缩和最终一致性架构,是大型分布式系统不可缺少的中间件。市面上比较常见的消息队列有:ActiveM原创 2020-08-18 06:26:41 · 2477 阅读 · 4 评论 -
SpringBoot2.x系列教程(六十一)Spring Boot集成FastDFS实现文件上传
针对有比较多的视频、图片或文件的网站,文件上传和存储是必不可少的。在《文件管理系统FastDFS原理详解》一文中介绍了FastDFS相关的原理。在《FastDFS基于Docker安装,免踩坑版》一文中介绍了基于Docker的安装。这篇文章带领大家来基于Spring Boot集成FastDFS,并实现上传和访问的功能。客户端FastDFS官方提供了一个Java版本的客户端,地址为:https://github.com/happyfish100/fastdfs-client-java但该客户端有几个问原创 2020-07-30 17:59:47 · 1298 阅读 · 0 评论 -
SpringBoot2.x系列教程(六十)Java Bean Validation详解及国际化集成
针对web项目,对外接口的参数校验是必不可少的。如果接口参数比较少,还可以通过ifelse进行逐个校验,但如果参数比较多,这种方式来进行编写代码会变得非常冗余。作为程序员,抽象和统一处理的能力是也是编程能力的重要指标。本篇文章就带大家基于Java Bean Validation来完成web项目参数校验的统一处理。Bean ValidationJSR303规范是Java EE 6中的一项子规范:Bean Validation,官方参考实现是Hibernate Validator,JSR303 用于对Ja原创 2020-07-09 14:33:01 · 1459 阅读 · 0 评论 -
SpringBoot2.x系列教程(五十九)SpringBoot实现国际化i18n功能
最近新开发的项目中需要使用到国际化功能,项目是基于SpringBoot来进行开发,借此机会整理一篇关于SpringBoot实现国际化i18n功能的文章,分享给大家。依赖引入在Spring Boot的web项目中无需引入其他特殊的配置,默认的web starter中便已经涵盖了所需的基础组件。对应的依赖pom配置如下:<dependency> <groupId>org.springframework.boot</groupId> <artifac原创 2020-07-07 21:25:06 · 2524 阅读 · 1 评论 -
SpringBoot2.x系列教程(五十八)SpringBoot集成Mybatis的一级缓存和二级缓存
SpringBoot集成Mybatis几乎已经成为大多数项目的标配了,但在使用的过程中Mybatis的缓存功能往往会被大家遗忘,甚至很多开发者都没意识到在SpringBoot集成Mybatis还有一级缓存和二级缓存的事。本来没计划写本篇文章,但在实践的过程掉坑里了,当从坑中爬起来时,发现有必要给大家写写Mybatis的缓存。遇到什么样的坑事情是这样的:项目中使用了乐观锁,并进行了失败尝试(3次)。但运行的时候发现尝试也是失败的。起初以为是并发问题,然后把尝试次数无限放大,发现次次都是失败的。这其中一原创 2020-05-28 23:20:44 · 1459 阅读 · 3 评论 -
SpringBoot2.x系列教程(五十七)SpringBoot集成mybatis-plus及分页
前面我们将了Spring Boot集成Mybatis相关的操作,而在Mybatis-plus则是基于Mybatis进行了更加丰富的基础功能提供和封装,比如预置了大量的默认方法以及分页组件。比如其中提供的BaseMapper,用于其他业务Mapper的集成接口变定义了如下常见的功能的接口:public interface BaseMapper<T> extends Mapper<...原创 2020-04-08 21:41:32 · 1634 阅读 · 0 评论 -
SpringBoot2.x系列教程(五十六)SpringBoot集成Swagger2中不同环境开关配置
在前面的文章中我们介绍了Spring Boot如何集成Swagger2及访问权限的控制 。又有一个问题出现了,Swagger2虽然好用,但也不能发布到生产环境吧。那么,针对该问题,本篇文章为大家提供三种解决方案。选择最适合你的即可。方案一:根据条件判断的方式此中方式最常见,在配置文件中配置一个标识,比如:swagger: show : false在不需要的环境时,直接设置为fals...原创 2020-03-31 18:14:17 · 1619 阅读 · 0 评论 -
SpringBoot2.x系列教程(五十五)Mybatis反向生成Java代码
在上节课中我们介绍了在SpringBoot中如何集成Mybatis,当完成集成工作之后,便可进行正常的使用。如果数据库表结构以及创建完成,手动去写对应的mapper接口和mapper xml配置以及实体类等会显得非常麻烦。那么此时,如果能够通过插件完成数据库表结构到代码的生成,那将是一件非常爽的事。本篇文章就为大家介绍这么一款插件。插件集成关于Spring Boot集成Mybatis的部分...原创 2020-03-30 20:00:31 · 1378 阅读 · 1 评论 -
SpringBoot2.x系列教程(五十四)SpringBoot2.x集成Mybatis实战
市面上主流的ORM框架很多,而在国内甚至亚洲地区使用最多的当属Mybatis了,而国外更多使用的是JPA。本文就带大家学习如何通过Spring Boot集成Mybatis。本篇文章先以集成Mybatis XML版本为例。何谓XML版本?就是对应的SQL语句写在*mapper.xml文件中,而非通过注解的形式实现。Mybatis简介MyBatis是一款优秀的持久层框架,它支持自定义SQL、存储...原创 2020-03-28 10:41:15 · 1315 阅读 · 0 评论 -
SpringBoot2.x系列教程(五十三)SpringBoot2.x集成swagger2配置权限认证参数Authorize
在使用swagger2时,如果api接口需要token等权限认证内容,那么此时可以有两种方案进行解决:方案一,每个请求上面都添加对应token的key和value值。方案二:全局统一添加权限认证的token。一般情况下token都存放在header中。引入swagger2依赖引入对应的swagger2依赖:<dependency> <groupId>io.s...原创 2020-03-25 16:32:02 · 4739 阅读 · 0 评论 -
SpringBoot2.x系列教程(五十二)Spring Boot基于SpringSecurity设置swagger2访问权限
前面我们学习了Spring Boot集成swagger2的具体操作,但swagger2默认是没有权限控制的,也就是说如果是在内网行好,要是在公网上使用,那么对应接口文档信息将出现安全问题。这篇文章我们就结合SpringBoot中SpringSecurity来进行设置,让通过swagger2生成的接口文档也拥有访问权限,并且不影响其他业务的正常使用。SpringSecurity目前Web开发常...原创 2020-03-23 18:10:35 · 4941 阅读 · 5 评论 -
SpringBoot2.x系列教程(五十一)Spring Boot中JdbcTemplate多数据源配置
在《Spring Boot中JdbcTemplate源码分析》中我们讲解了自动配置相关的源代码实现。基于Spring Boot自动配置默认配置的组件,我们可以来自定义JdbcTemplate的实例化。而多数据源的配置就是在此基础上实例化多个数据源和JdbcTemplate。下面,我们来看具体的源代码实现。依赖类库关于依赖类库与集成JdbcTemplate时的一样,Spring Boot版本2...原创 2020-03-21 08:37:14 · 1363 阅读 · 0 评论 -
SpringBoot2.x系列教程(五十)Spring Boot Idea中热部署(自动刷新)
在Idea中开发Spring Boot项目,每当修改内容之后,都需要点一下重启来进行重新发布,比较繁琐。针对这个问题Spring Boot中提供了一个devtools的工具项目,可以帮助我们完成自动刷新,热部署的功能。本文给大家提供两种形式的热部署操作,下面看具体的操作。引入依赖在项目中引入devtools的pom依赖:<dependency> <groupId&...原创 2020-03-07 11:32:48 · 1549 阅读 · 0 评论 -
SpringBoot2.x系列教程(四十九)Spring Boot中JdbcTemplate源码分析
本篇文章带大家了解一下SpringBoot中JdbcTemplate的自动配置相关源码分析,同时简单了解一下在使用JdbcTemplate的方法时可能产生的误区。JDBCTemplate的方法误解在使用JdbcTemplate时最容易产生误解的就是queryForList方法。该方法的相关源码如下:@Overridepublic <T> List<T> queryF...原创 2020-03-04 20:02:23 · 1035 阅读 · 0 评论 -
SpringBoot2.x系列教程(四十八)Spring Boot集成JDBCTemplate
JDBCTemplate相对于其他ORM框架来说是极其简单和极容易上手的一个数据库连接的封装。再学习JDBCTemplate之前,我们先来了解一下JDBC相关的概念和操作。JDBC简介Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。它由一组用Jav...原创 2020-03-03 20:26:17 · 1348 阅读 · 0 评论 -
SpringBoot2.x系列教程(四十七)Spring Boot集成WebSocket之STOMP实战
上节课我们讲解了STOMP的基本原理和在Spring Boot中的处理流程。本篇文章以具体的实例带大家了解如何在Spring Boot中使用STOMP协议。实例场景用户访问页面,进入“技术交流群”页面,自动登录会话,可发送消息、离开等操作。同时,服务器端会定时推送“计数”到前端。实战代码引入依赖在Spring Boot项目中引入以下依赖:<dependencies> ...原创 2020-02-27 15:41:16 · 2077 阅读 · 0 评论 -
SpringBoot2.x系列教程(四十六)Spring Boot集成WebSocket之STOMP协议简介
在上篇文章中我们学习了WebSocket的基础概念,依旧相关的实战项目。在本篇文章中,我们来学习一下如何基于STOMP协议来进行WebSocket协议的实现。也就是说基于WebSocket协议有多种实现,基于STOMP来实现是其中的一种,也是Spring Boot推荐的一种。学习完WebSocket协议,我们知道它并没有规定其消息发送的详细格式。那就意味着每个使用WebSocket的开发者,都...原创 2020-02-27 13:42:33 · 1764 阅读 · 0 评论 -
SpringBoot2.x系列教程(四十五)Spring Boot集成WebSocket实现技术交流群功能
在上篇文章中,我们了解了WebSocket的基本功能及相关概念。本篇文章中我们以具体的实例来演示,在Spring Boot中整合WebSocket,同时实现一个场景的业务场景功能。针对在Spring Boot中使用合WebSocket通常有两种形式:直接基于WebSocket协议进行集成和基于STOMP协议进行集成。本篇文章我们基于WebSocket协议来完成相应功能。业务场景实例的基本业务...原创 2020-02-26 11:12:15 · 2107 阅读 · 0 评论 -
SpringBoot2.x系列教程(四十四)WebSocket基础知识简介
WebSocket简介WebSocket协议是由HTML5定义的,基于TCP协议实现的一种网络协议,它实现了客户端与服务器全双工通信。也就是说通过该协议服务器可以主动发送信息给客户端。何谓全双工信息只能单向传送为单工;信息能双向传送但不能同时双向传送称为半双工,信息能够同时双向传送则称为全双工。基本实现原理WebSocket协议基于TCP协议实现,客户端和服务器只需要做一个握手的动作之后...原创 2020-02-25 21:04:25 · 1238 阅读 · 0 评论 -
SpringBoot2.x系列教程(四十三)SpringBoot整合Swagger2
在上篇文章中我们讲解了RESTful的概念及相关风格API的设计,那么针对多客户端的API,作为后端开发如何对接口进行验证呢?当然,可以通过写单元测试来完成。但如果还需要维护每个接口的API文档,同时还要保持版本更新维护呢?是不是工作量变得异常繁重了。那么,Swagger的出现,可以帮助后端开发人员轻松的解决上述痛点。针对接口的功能测试,你不仅可以通过单元测试来进行验证,还可以通过Swagge...原创 2020-02-24 19:48:41 · 3178 阅读 · 0 评论 -
SpringBoot2.x系列教程(四十二)SpringBoot中构建RESTful服务
RESTful基本概念REST全称Representational State Transfer是一种架构原则,其中将web服务视为资源,可以由其URL唯一标识。直译便是"表现层状态转化"。REST是由是Roy Thomas Fielding在他2000年的博士论文中提出的,他是HTTP协议(1.0版和1.1版)的主要设计者。资源REST的名称"表现层状态转化"中,省略了主语。“表现层"其...原创 2020-02-19 11:40:10 · 1208 阅读 · 0 评论 -
SpringBoot2.x系列教程(四十一)SpringBoot中通过SpringContextUtils工具类获取Bean
本文给大家介绍两种通过SpringContextUtils工具类来获取Bean的方法,SpringContextUtils工具类只是大家按照通常命名的规则的一个普通工具类,当然你也可以用其他名字。方式一:实现ApplicationContextAware具体代码如下:package com.ctrip.common.util; import org.springframework.con...原创 2020-02-15 10:40:39 · 4841 阅读 · 0 评论 -
SpringBoot2.x系列教程(四十)SpringBoot中@ControllerAdvice使用详解
@ControllerAdvice,是Spring3.2提供的新注解,顾名思义是对控制器(Controller)的增强。通常情况下,该注解看用于以下三个场景:全局异常处理、全局数据绑定、全局数据预处理。先看一下@ControllerAdvice注解的源码:@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Docume...原创 2020-02-07 12:20:50 · 1936 阅读 · 1 评论 -
SpringBoot2.x系列教程(三十九)SpringBoot中SecurityConstraint使用详解
针对Web应用中数据的敏感程度,可采用http或https进行访问。而在Spring Boot中也可以通过重新定义TomcatServletWebServerFactory的具体实现来达到不同层级数据的安全访问形式。比如,静态资源采用http访问,非静态资源采用https进行访问。具体到代码使用,以Spring Boot为例,可实现http调整到https的配置代码如下:@Configurat...原创 2020-02-06 11:40:28 · 4795 阅读 · 0 评论 -
SpringBoot2.x系列教程(三十八)SpringBoot配置Https访问
Https在网站中的使用不断的在普及,它不仅能够增加网站的安全性,甚至连搜索引擎都会对支持Https的网站进行区别对待。但购买Https证书还是比较昂贵的,作为个人开发者,可以自己生成一个证书,也可以在购买域名的服务商那里免费申请到一年期的证书。像我的个人网站https://www.choupangxia.com/ 就是通过域名提供商提供的免费域名。当然,还有一些专门的免费证书提供商提供三个月...原创 2020-02-06 11:17:32 · 1878 阅读 · 1 评论 -
SpringBoot2.x系列教程(三十七)SpringBoot web之网站图标(Favicon)配置
正常情况下,每个网站都会有一个对应的网站图标(Favicon),在浏览器访问网站时,对应的浏览器标签上会出现对应的图标。如下图百度的图标:对此Spring Boot项目也提供了支持,但不同版本有所区别,在最新版本中的使用,网络上大多数文章已经失效,本篇文章带大家看一下Spring Boot 2.x版本中的使用情况。Spring Boot不同版本对Favicon的支持在早些版本中Spring...原创 2020-02-01 20:29:50 · 5373 阅读 · 5 评论 -
SpringBoot2.x系列教程(三十六)SpringBoot之Tomcat配置
Spring Boot默认内嵌的Tomcat为Servlet容器,关于Tomcat的所有属性都在ServerProperties配置类中。同时,也可以实现一些接口来自定义内嵌Servlet容器和内嵌Tomcat等的配置。关于此配置,网络上有大量的资料,但都是基于SpringBoot1.5.x版本,并不适合当前最新版本。本文将带大家了解一下最新版本的使用。ServerProperties的部分源...原创 2020-01-18 10:47:27 · 6355 阅读 · 2 评论 -
SpringBoot2.x系列教程(三十五)SpringMVC之ViewResolver及扩展
在前些章节中我们学习了各类前端模板引擎的页面展示,发现它们的共性时,都实现了ViewResolver接口,并将实现类注入到Spring容器当中。以Thymeleaf为例,在它的自动配置类中实现如下:@Bean@ConditionalOnMissingBean(name = "thymeleafViewResolver")ThymeleafViewResolver thymeleafView...原创 2020-01-17 10:38:50 · 2519 阅读 · 0 评论 -
SpringBoot2.x系列教程(三十四)Thymeleaf自动配置源码解析
在之前的章节中我们已经学习了SpringBoot中Thymeleaf的基本使用,按照老规矩,我们最后来看一下Thymeleaf在SpringBoot中的自动配置相关源码。关于源码阅读依旧重点给大家介绍基本的类及相关的实现思路,达到抛砖引玉的效果。而相关Thymeleaf底层的实现,大家可自行阅读Thymeleaf相关源码。首先看来与application.properties文件绑定的配置类的...原创 2020-01-15 11:11:52 · 1301 阅读 · 0 评论 -
SpringBoot2.x系列教程(三十三)Thymeleaf手动渲染实例讲解
在前面章节中我们讲解了Thymeleaf作为前端页面展示时的基本使用。之前我们也提到,Thymeleaf除了可以用于Web前端,也可以用于基于模板其他场景。比如在发送邮件时,想让邮件的内容和格式更统一些、根据模板生成一些静态的页面或文本等,都可以使用Thymeleaf。下面我们以Thymeleaf模板来生成邮件内容为例进行讲解,该实例依旧基于SpringBoot来进行实现。项目引入依赖如下:...原创 2020-01-15 10:08:55 · 1143 阅读 · 0 评论