![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring boot
文章平均质量分 90
carl-zhao
I never grew up, but i never stop growing.
展开
-
Spring Boot 缓存教程示例
最后需要注意的是,今天我们已经看到了 spring 框架在特定于应用程序缓存的缓存领域提供了什么。我们还看到了 spring 中支持该功能的注释。我希望本教程对你有用。在这篇文章中,我们使用了回退缓存提供程序,即后台的。下一步是配置其他支持的缓存引擎,如 Redis, Ehcache 等。原创 2022-10-31 22:38:32 · 758 阅读 · 1 评论 -
Spring Boot 项目启动指定 HTTP 端口的几种方式
Spring 项目当中,可以通过来获取到WebServer.Tomcat 的实现类是。在这个对象里面,可以通过属性它是一个。可以指定容器启动暴露的端口。自定义 TomcatConnectorCustomizer}不仅仅实现了,同时他也实现了。而且 Spring Boot 来提供了这个接口来定制化,同时也是实现了的子接口。这个接口是可以对 WebServer 进行配置化,包括 Web 容器的端口。自定义 WebServerFactoryCustomizer} };}其实自定义它的起始类是通过。原创 2022-09-22 18:17:59 · 7162 阅读 · 0 评论 -
Spring Webflux 后端处理前端请求的 4 种方式
Spring Webflux 是一个无响应系统。它具有某些特性,使其成为低延迟、高吞吐量工作负载的理想选择。Project Reactor 和 Spring 组合一起工作,使开发人员能够构建响应性、弹性、弹性和消息驱动的企业级反应系统。............原创 2022-07-31 18:40:26 · 1964 阅读 · 1 评论 -
Java Google Sheet API
完成本页其余部分描述的步骤,创建一个简单的Java命令行应用程序,向 Google Sheets API发出请求。原创 2022-04-20 17:17:12 · 2198 阅读 · 6 评论 -
Spring EL 表达式隔离不同环境的 RocketMQ
项目之前使用的是 RabbitMQ 作为消息中间件用来解耦服务之间的调用,现在需要对消息中间件进行升级决定采用 RocketMQ。RocketMQ 相比 RabbitMQ 更具有优势,当然大家可以在网上查找到相关资料。这里就不在赘述了。今天主要是讲如何使用 Spring EL 表达式来隔离不同环境的 RocketMQ 的。因为在非生产环境我们为了优化资源的效果,只部署了一套 RabbitMQ 环境。但是非生产环境有多套环境:dev(开发环境)、test(测试环境)、pre(预生产环境)。所以我们在使用 R原创 2021-08-06 00:45:02 · 1968 阅读 · 1 评论 -
Spring Boot 项目通过 Maven profiles 使用 -P 支持项目多环境配置打包
在我们进行项目开发的时候,都会把一些固定的值添加到配置文件当中进行集中管理。如果更近一步就是通过配置中心进行管理,但是配置中心的地址也是需要配置在项目中的配置文件当中的。一般在项目当中分为不同的环境,比如:local 环境:本地环境,一般是开发人员在本地进行开发测试的环境dev 环境:开发环境,外部用户无法访问,开发人员使用,版本变动很大。test 环境:测试环境,外部用户无法访问,专门给测试人员使用的,版本相对稳定。uat 环境:User Acceptance Test 用户验收测试,一般用于商原创 2021-05-09 19:53:11 · 1441 阅读 · 0 评论 -
Spring Boot WebFlux 整合 Thymeleaf 示例
大型系统一般都是进行前后端分享,但是我对于系统刚刚从零开始或者一些项目、内部项目都没有进行前后端分离。使用的都是模板技术,今天就来分享一下 Spring Boot WebFlux 整合模板引擎 Thymeleaf 的例子。原创 2021-03-09 20:52:33 · 683 阅读 · 0 评论 -
Spring Date MongoDB 查询返回指定字段
最近的工作内容是重构合同,什么是合同(电子合同)?作为第三方支付公司,合同其实就是我们写商户签订的合约。里面包含允许商户操作业务类型、支付方法各种手续费配置及商户结算相关的配置。由于需要考虑到扩展性,所以合同设计采用了三级结构的设计。合同只会保存当时有效的版本在数据库里面,但是产品需求是能够展示合同的的变通记录,也就是合同的版本的概念。1、系统引入 MongoDB由于合同是一种三级结构,其实这个时候可以把它看成一种树形结构。这个时候要动态的比对合同的变化情况,需要把合同的原合同信息与当前合同信息都保存起原创 2021-02-05 23:04:07 · 2140 阅读 · 1 评论 -
Spring Boot 自定义 Hibernate 验证器优雅验证枚举类型的请求参数
当我们后端 restful 开发的时候,可以使用原创 2020-11-25 21:33:21 · 776 阅读 · 0 评论 -
Spring Boot 中使用 MDC 追踪一次请求全过程
MDC 的全称是 Mapped Diagnostic Context,映射诊断上下文(MDC)。本质上是由日志框架维护的映射,其中应用程序代码提供键-值对,然后日志框架可以在日志消息中插入这些键-值对。MDC数据在过滤消息或触发某些操作方面也非常有用。管理开销。SLF4J支持MDC,即映射的诊断上下文。如果底层日志框架提供MDC功能,那么SLF4J将委托给底层框架的MDC。注意,此时,只有log4j和logback提供MDC功能。如果底层框架不提供MDC,例如java.util。日志记录后,SLF4J仍将原创 2020-10-31 22:16:13 · 10702 阅读 · 0 评论 -
由 RedisTemplate 事务 enableTransactionSupport 引发的血案
在最近的项目当中因为使用了类似字典表的数据所以我使用的 Spring Farmework 当中的 Cache 抽象,通过 Redis 来做为缓存。因为原有项目当中配置了 Redis,而且项目是基于 Spring Boot 构建的,并没有去除 Redis 的自动依赖(RedisAutoConfiguration)。导致有些 Redis 的有些类是基于项目中自己配置的 RedisTemplate,而有些又是引用的 Spring Boot 中 Redis 的自动配置生成的 RedisTemplate。所以我就把原创 2020-09-16 21:55:01 · 3124 阅读 · 0 评论 -
Spring Boot 自动配置原理解析
Spring Boot 使得创建可以“直接运行”的独立的、生产级的基于 Spring 的应用程序变得很容易。当我们直接使用 Spring Framework 集成第三方框架时,使用过的朋友都知道需要繁琐的配置。如果我们使用 Spring Boot 时,如果需要集成缓存框架 Redis 时,只需要在开发的项目中引入 Redis 相关的配置就可以 RedisTempalte 操作本地早已启动好的 Redis 服务。原创 2020-08-30 17:10:07 · 589 阅读 · 1 评论 -
Spring Boot 通过 Mvc 扩展方便进行货币单位转换
由于公司是支付平台,所以很多项目都涉及到金额,业务方转递过来的金额是单位是元,而我们数据库保存的金额单位是分。一般金额的流向有以下几个方向:- 外部业务方请求我们服务,传递过来的金额单位是元,需要把元转换成分。比如:下单接口。- 内部系统之间的流转,不管是向下传递还是向上传递系统间的流程都是分,不需要扭转。比如:调用支付引擎(向下传递),支付引擎回调收单业务(向上传递)。- 向业务方返回数据,这个时候需要把分转换成元。比如:商户调用查询订单接口。原创 2020-08-20 23:30:19 · 1162 阅读 · 3 评论 -
Spring Boot Cache 集成 Spring Data Redis 1.x 与 2.x 的差异
自Spring 3.1起,提供了类似于@Transactional注解事务的注解Cache支持,且提供了Cache抽象,在此之前一般通过AOP实现。通过 Spring Cache 可以很方便的管理我们的缓存。使用Spring Cache的好处:提供基本的Cache抽象,方便切换各种底层Cache;通过注解Cache可以实现类似于事务一样,缓存逻辑透明的应用到我们的业务代码上,且只需要更少的代码就可以完成;提供事务回滚时也自动回滚缓存;支持比较复杂的缓存逻辑;内存缓存 Redis 由于它支原创 2020-08-13 22:41:32 · 964 阅读 · 1 评论 -
Spring Boot 集成 Redis 事件通知实现订单到期自动关闭
之前写过一篇文章 RabbitMQ 延迟队列实现订单自动关闭,今天介绍另外一种方式就是通过 Redis 的过期来实现订单自动关闭。1、功能概述从 Redis 2.8.0 开始,健空间通知允许客户订阅 Pub/Sub 通道以接收影响Redis数据集的事件。可以接收到的事件的例子如下:影响给定键的所有命令。接收LPUSH操作的所有键。所有键在数据库 0 中到期。事件是使用正常的发布/订阅层的Redis,所以实现发布/订阅的客户端可以使用这个功能而不需要修改。因为 Redis 发布/订阅是 f原创 2020-07-11 20:20:22 · 1714 阅读 · 0 评论 -
Spring Boot 集成 Mybatis Plus 简化数据库操作
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。1、为什么需要 Mybatis Plus现在主流的开源 ORM 框架主要是 Mybatis 和 JPA 这两个开源框架,下面我们就来分别看一下这两个开源框架的优势。1.1 Mybatis 的优势SQL 语句可以自由控制,更灵活,性能较高SQL 与代码分离,更于阅读和维护提供 XML 标签,支持编写动态 SQL 语句1.2 JPA 的优势JPA原创 2020-06-21 23:59:55 · 738 阅读 · 0 评论