springboot-mongodb 索引冲突分析及解决-编程思维

一、背景 spring-data-mongo 实现了基于 MongoDB 的 ORM-Mapping 能力, 通过一些简单的注解、Query封装以及工具类,就可以通过对象操作来实现集合、文档的增删改查; 在 SpringBoot 体系中,spring-data-mongo 是 MongoDB Java 工具库的不二之选。 二、问题产生 在一次项目问题的追踪中,发现SpringBoot 应用启动失

补习系列(14)-springboot redis 整合-数据读写-编程思维

目录一、简介二、SpringBoot Redis 读写A. 引入 spring-data-redisB. 序列化C. 读写样例三、方法级缓存四、连接池小结 一、简介 在 补习系列(A3)-springboot redis 与发布订阅 一文中,我们介绍了使用 Redis 实现消息订阅发布的机制,并且给出了一个真实用例。 然而,绝大多数场景下 Redis 是作为缓存被使用的(这是其主要优势)。除此之

补习系列(15)-springboot 分布式会话原理-编程思维

目录一、背景二、SpringBoot 分布式会话三、样例程序四、原理进阶A. 序列化B. 会话代理C. 数据老化小结 一、背景 在 补习系列(3)-springboot 几种scope 一文中,笔者介绍过 Session的部分,如下: 对于服务器而言,Session 通常是存储在本地的,比如Tomcat 默认将Session 存储在内存(ConcurrentHashMap)中。 但随着网站的用

补习系列(16)-springboot mongodb 数据库应用技巧-编程思维

目录一、关于 MongoDB二、Spring-Data-Mongo三、整合 MongoDB CRUDA. 引入框架B. 数据库配置C. 数据模型D. 数据操作E. 自定义操作四、高级技巧1. 连接池配置2. 去掉_class属性3. 自定义序列化4. 读写分离小结 一、关于 MongoDB MongoDB 目前非常流行,在最近的DB-Engine排名中居第5位,仅次于传统的关系型数据库如 Or

补习系列(17)-springboot mongodb 内嵌数据库-编程思维

目录简介一、使用 flapdoodle.embed.mongoA. 引入依赖B. 准备测试类C. 完善配置D. 启动测试细节二、使用FongoA. 引入框架B. 准备测试类C.业务测试参考文档小结 简介 前面的文章中,我们介绍了如何在SpringBoot 中使用MongoDB的一些常用技巧。 那么,与使用其他数据库如 MySQL 一样,我们应该怎么来做MongoDB的单元测试呢? 使用内嵌数据库

补习系列(4)-springboot 参数校验详解-编程思维

目录目标一、PathVariable 校验二、方法参数校验三、表单对象校验四、RequestBody 校验五、自定义校验规则六、异常拦截器参考文档 目标 对于几种常见的入参方式,了解如何进行校验以及该如何处理错误消息; 了解springboot 内置的参数异常类型,并能利用拦截器实现自定义处理; 能实现简单的自定义校验规则 一、PathVariable 校验 在定义 Restful 风格的接

补习系列(5)-springboot- restful应用-编程思维

一、目标 了解 Restful 是什么,基本概念及风格; 能使用SpringBoot 实现一套基础的 Restful 风格接口; 利用Swagger 生成清晰的接口文档。 二、Restful 入门 **什么是REST ** 摘自百科的定义:REST即表述性状态转移(英文:Representational State Transfer,简称REST) 是Roy Fielding博士(HTTP规

补习系列(6)- springboot 整合 shiro 一指禅-编程思维

目标 了解ApacheShiro是什么,能做什么; 通过QuickStart 代码领会 Shiro的关键概念; 能基于SpringBoot 整合Shiro 实现URL安全访问; 掌握基于注解的方法,以实现灵活定制。 一、Apache Shiro是什么 Apache Shiro 是一个强大且易用的Java安全框架,用于实现身份认证、鉴权、会话管理及加密功能。 框架提供了非常简单且易于上手的AP

补习系列(8)-springboot 单元测试之道-编程思维

目录目标一、About 单元测试二、About Junit三、SpringBoot-单元测试项目依赖测试样例四、Mock测试五、最后 目标 了解 单元测试的背景 了解如何 利用 springboot 实现接口的测试 了解如何 利用 mokito 做代码的 mock 一、About 单元测试 单元测试其实是一种廉价的技术,是由开发者创建运行测试代码,用于对程序模块(软件设计的最小单位)进行正确

补习系列(9)-springboot 定时器,你用对了吗-编程思维

目录简介一、应用启动任务二、JDK 自带调度线程池三、@Scheduled定制 @Scheduled 线程池四、@Async定制 @Async 线程池小结 简介 大多数的应用程序都离不开定时器,通常在程序启动时、运行期间会需要执行一些特殊的处理任务。 比如资源初始化、数据统计等等,SpringBoot 作为一个灵活的框架,有许多方式可以实现定时器或异步任务。 我总结了下,大致有以下几种:

补习系列(10)-springboot 之配置读取-编程思维

目录简介一、配置样例二、如何注入配置1. 缺省配置文件2. 使用注解3. 启动参数还有..三、如何读取配置@Value 注解Environment 接口@ConfigurationProperties 注解四、不同环境中的配置1. 区别开发、测试、发布环境2. 声明多配置文件参考文档 简介 在早前的博客中曾经写过 Spring 程序通过 Bean 映射实现配置信息的读取。 在SpringBoot

补习系列(11)-springboot 文件上传原理-编程思维

目录一、文件上传原理二、springboot 文件机制临时文件定制配置三、示例代码A. 单文件上传B. 多文件上传C. 文件上传异常D. Bean 配置四、文件下载小结 一、文件上传原理 一个文件上传的过程如下图所示: 浏览器发起HTTP POST请求,指定请求头: Content-Type: multipart/form-data 服务端解析请求内容,执行文件保存处理,返回成功消息

补习系列(1)-springboot项目基础搭建课-编程思维

目录前言一、基础结构二、添加代码三、应用配置四、日志配置五、打包部署小结 前言 springboot 最近火的不行,目前几乎已经是 spring 家族最耀眼的项目了。抛开微服务、技术社区这些推广因素不说,框架本身的确有非常多的优点。比如 更简化的配置,摒除了许多繁杂的xml配置(事实证明,越简单的东西越容易让人记住); 内置Servlet容器,不再依赖外部环境 大量的starter模块,随手拈

补习系列(3)-springboot中的几种scope-编程思维

目标 了解HTTP 请求/响应头及常见的属性; 了解如何使用SpringBoot处理头信息 ; 了解如何使用SpringBoot处理Cookie ; 学会如何对 Session 进行读写; 了解如何在不同请求间传递 flash参数 一、Http 头信息 HTTP 头(Header)是一种附加内容,独立于请求内容和响应内容。 HTTP 协议中的大量特性都通过Header信息交互来实现,比如内容

补习系列(21)-springboot初始化之7招式-编程思维

目录背景1、 @PostConstruct 注解2、 InitializingBean 接口3、 @Bean initMethod方法4、 构造器注入5、 ApplicationListener6、 CommandLineRunner7、 ApplicationRunner测试代码参考文档 背景 在日常开发时,我们常常需要 在SpringBoot 应用启动时执行某一段逻辑,如下面的场景: