SpringBoot中配置API路径,参照如下配置: server: servlet: context-path: /api/v1 然而在Spring WebFlux项目中,需要按照如下方式配置API路径: spring: application: name: api-ser
1. 前言 在微服务项目中,建议所有接口使用统一的API前缀,多类业务可用不同前缀区分。这样便于Nginx/Openresty等反向代理统一处理,好处如下: 简化配置:统一前缀可减少API代理配置项,降低管理复杂度和出错风险; 便于开发:统一前缀利于为相同业务编写Lua插件,实现诸如鉴权等功能; 保
1. 背景 近期项目需要对接三方平台,双方约定HTTP请求的RequestBody需要使用对称加密方法进行加密,这就导致需要对部分接口进行统一的解密处理,避免冗余的校验和解密工作。 2. 实现 2.1 解密注解 创建解密注解,以便灵活添加在需要使用解密的接口。 @Target({ElementTyp
近期在学习Halo的源码(基于Gradle构建),在Idea启动项目时,通过命令行参数(program arguments)设置指定的profile(dev,mysql),发现程序无法识别指定得profile配置,会回落至默认的配置。 网上查询原因,发现可以通过设置环境参数解决,具体示例如下所示:
1.前言 近期项目需要在新的环境进行全量部署,发现Spring Boot微服务无法正常启动,报MongoDB索引冲突错误(IndexOptionsConflict),具体报错信息如下: Caused by: com.mongodb.MongoCommandException: Command fai
做过Java后端开发的同学应该都用使用过Springfox和Swagger,但我相信很多同学都对这两个工具的理解和使用都有问题。 Swagger是什么 根据官网的介绍,Swagger是一系列用于Restful API开发的工具,开源的部分包括: OpenAPI Specification:API规范
1. 前言 近期使用Spring Boot编写了一些简单的工具应用,部署的时候图省事,不想编写开机自启动脚本并且完成Linux主机定时任务配置,因此想着通过Docker compose解决部署问题。 主要需要完成如下步骤: 完成日志配置(指定日志生成路径/app/logs); 创建Docker fi
1. 前言 项目上部署Spring Boot应用至内网环境的时候,发现在调用生成Excel时主机缺失相应字体,又因为内网机器无法访问互联网下载相应字体,导致功能调用失败,为解决此问题,需要在打包Spring Boot镜像时,将需要的字体一并打包。 2. 打包字体 在Linux Docker镜像中生成
1. 业务背景 最近项目运行,发现某热点业务流程,频繁调用Mongo进行入库操作。此处已经成为性能瓶颈,需要对其进行优化。 因为入库数据主要是作为审计进行使用,对入库的时间实时性要求不高,且可以容忍在意外情况下丢失部分数据。 基于此点,设计使用内存阻塞队列存储Mongo入库请求(削峰填谷),然后使用
1. 问题 最近需要对SpringBoot的依赖进行版本升级,在使用过程中,发现原先的跨域设置失效问题。 原跨域设置代码: @Bean public CorsFilter corsFilter() { CorsConfiguration config = new Co