常见Bean拷贝框架下划线驼峰互转扩展支持

2021-04-28
阅读 9 分钟
3.4k
上一篇博文常见Bean拷贝框架使用姿势及性能对比 介绍了几种bean拷贝框架的使用姿势以及性能对比,主要适用的是属性名一致、类型一致的拷贝,在实际的业务开发中,经常会用到驼峰和下划线的互转,本文在之前的基础上进行扩展

常见Bean拷贝框架使用姿势及性能对比

2021-04-19
阅读 13 分钟
7.6k
常见Bean拷贝框架使用姿势及性能对比Bean属性拷贝,主要针对几个常用的拷贝框架进行性能对比,以及功能扩展支持选用的框架cglib (直接使用Spring封装的BeanCopier)apacheMapStructSpringHuTool<!-- more -->I.背景当业务量不大时,不管选择哪个框架都没什么问题,只要功能支持就ok了;但是当数据量大的时候,可能...

Java中两种分页遍历的使用姿势

2021-03-02
阅读 4 分钟
1.5k
在日常开发中,分页遍历迭代的场景可以说非常普遍了,比如扫表,每次捞100条数据,然后遍历这100条数据,依次执行某个业务逻辑;这100条执行完毕之后,再加载下一百条数据,直到扫描完毕

【SpringBoot DB 系列】Mybatis 基于 AOP 实现多数据源切换

2021-01-17
阅读 10 分钟
4.7k
前面一篇博文介绍了 Mybatis 多数据源的配置,简单来讲就是一个数据源一个配置指定,不同数据源的 Mapper 分开指定;本文将介绍另外一种方式,借助AbstractRoutingDataSource来实现动态切换数据源,并通过自定义注解方式 + AOP 来实现数据源的指定

【基础系列】ConfigurationProperties 配置绑定中那些你不知道的事情

2021-01-17
阅读 9 分钟
5k
在 SpringBoot 项目中,获取配置属性可以说是一个非常简单的事情,将配置写在aplication.yml文件之后,我们就可以直接通过@Value注解来绑定并获取;此外我们也可以将一个结构化的配置,借助@ConfigurationPorperties绑定到一个 POJO,然后供项目使用,那么在使用它的时候,不知是否有想过

Spring 工具类之基本元素判断

2021-01-17
阅读 2 分钟
1.7k
实际业务开发中偶尔会遇到判断一个对象是否为基本数据类型,除了我们自老老实实的自己写之外,也可以借助 Spring 的 BeanUtils 工具类来实现

【SpringBoot DB系列】Jooq批量写入采坑记录

2020-12-13
阅读 4 分钟
1.6k
前面介绍了jooq的三种批量插入方式,结果最近发现这里面居然还有一个深坑,我以为的批量插入居然不是一次插入多条数据,而是一条一条的插入...,这就有点尬了

Maven 中央仓库提交Jar包全程指南

2020-12-03
阅读 12 分钟
4.5k
本文记录一下将jar上传到maven中央仓库的全过程,文中项目依托在github上,使用的是mac环境 (关于maven、jdk的环境配置不属于本文内容)

【SpringBoot DB 系列】Redis 高级特性之 HyperLoglog

2020-11-02
阅读 3 分钟
2.4k
hyperloglog 算法,利用非常少的空间,实现比较大的数据量级统计;比如我们前面在介绍 bitmap 的过程中,说到了日活的统计,当数据量达到百万时,最佳的存储方式是 hyperloglog,本文将介绍一下 hyperloglog 的基本原理,以及 redis 中的使用姿势

【SpringBoot DB 系列】Redis 高级特性之发布订阅

2020-10-30
阅读 4 分钟
1.3k
通常来讲,当我们业务存在消息的业务逻辑时更多的是直接使用成熟的 rabbitmq,rocketmq,但是一些简单的业务场景中,真的有必要额外的引入一个 mq 么?本文将介绍一下 redis 的发布订阅方式,来实现简易的消息系统逻辑

【SpringBoot DB 系列】Redis 高级特性之 Bitmap 使用姿势及应用场景介绍

2020-10-17
阅读 5 分钟
2.5k
前面介绍过 redis 的五种基本数据结构,如 String,List, Set, ZSet, Hash,这些属于相对常见了;在这些基本结果之上,redis 还提供了一些更高级的功能,如 geo, bitmap, hyperloglog,pub/sub,本文将主要介绍 Bitmap 的使用姿势以及其适用场景,主要知识点包括

【SpringBoot DB 系列】Jooq 之新增记录使用姿势

2020-09-30
阅读 6 分钟
1.6k
【SpringBoot DB 系列】Jooq 之新增记录使用姿势接下来我们开始进入 jooq 的增删改查的使用姿势系列,本篇将主要介绍如何利用 jooq 来实现添加数据<!-- more -->I. 项目搭建本项目借助SpringBoot 2.2.1.RELEASE + maven 3.5.3 + IDEA进行开发1. 项目依赖关于如何创建一个 SpringBoot 的项目工程,不再本文的描述范...

【SpringBoot DB 系列】Jooq 初体验

2020-09-16
阅读 7 分钟
1.5k
java 环境中,说到数据库的操作,我们通常会想到的是 mybatis 或者 hibernate,今天给大家介绍一个国内可能用得不太多的操作方式 JOOQ,一款基于 Java 访问关系型数据库的工具包,轻量,简单,并且足够灵活的 ORM 框架

【SpringBoot DB 系列】h2databse 集成示例 demo

2020-09-15
阅读 10 分钟
2.4k
h2dabase 基于内存的数据库,更常见于嵌入式数据库的使用场景,依赖小,功能齐全;一般来讲,正常的商业项目用到它的场景不多,但是在一些特殊的 case 中,还是比较有用的,比如用于单元测试,业务缓存,一些简单的示例 demo 等;本文将手把手教你创建一个继承 h2dabase 的项目,并支持从 sql 中导入预定好的 schema 和 ...

【SpringBoot WebFlux 系列】 header 参数解析

2020-09-11
阅读 3 分钟
2.1k
上一篇 weblfux 主要介绍了 path 参数的解析与映射关系,在我们进入 url 参数/post 表单之前,先看一下另外的一种参数--请求头中的参数如何处理

【SpringBoot WebFlux 系列】WebFlux 之 Path 参数解析与 url 映射

2020-09-07
阅读 9 分钟
1.2k
异步、反应式、函数式编程,近来可以说是逐渐主流了;Spring5 通过 Reactor 增加了对反应式编程的支持,而 Spring WebFlux 不同于以往的 web 框架,作为一个非阻塞异步 web 框架,可以充分的利用多核 CPU 硬件资源,提供更强的并发支持;Spring 官方对 WebFlux 的支持非常友好,基本上对于惯于 Spring WEB 的 java 开发...

acme.sh 快速实现 https 证书颁发与自动续期

2020-08-10
阅读 3 分钟
3.3k
acme.sh 快速实现 https 证书颁发与自动续期借助acem.sh来迅速实现 let's encrypt 的泛域名 ssl 证书颁发与续期,基本上五分钟就可以解决战斗本文主要内容来自 acme.sh 的官方 wiki,一切以官方说明为准: acme wiki<!-- more -->I. 安装步骤1. 登录服务器登录到某台 linux 服务器,我这里以 Centos 举例说明 {代码...

【SpringBoot 基础系列】SpEL 语法扫盲与查询手册

2020-05-21
阅读 13 分钟
1.4k
【SpringBoot 基础系列】SpEL 语法扫盲与查询手册 Spring 表达式语言简称为 SpEL,一种类似 Ognl 的对象图导航语言(对于 ognl 不熟悉的同学可以参考一下: Ognl 系列博文) SeEL 为 Spring 提供了丰富的想象空间,除了一些基本的表达式操作之外,还支持 访问 bean 对象 调用方法,访问(修改)类(对象)属性 计算表达式 正...

【SpringCloud 系列】Eureka 注册中心初体验

2020-05-19
阅读 6 分钟
1.4k
在 SpringCloud 微服务体系中,有几个比较重要的组件,如注册中心,配置中心,网关,安全、负载均衡、监控等等,接下来我们将来看一下这些常用的组件有什么用,在微服务架构下的该怎么用。

【SpringBoot 基础系列】实现一个自定义配置加载器(应用篇)

2020-05-07
阅读 11 分钟
1.8k
Spring 中提供了@Value注解,用来绑定配置,可以实现从配置文件中,读取对应的配置并赋值给成员变量;某些时候,我们的配置可能并不是在配置文件中,如存在 db/redis/其他文件/第三方配置服务,本文将手把手教你实现一个自定义的配置加载器,并支持@Value的使用姿势

Java实现AES ECP PKCS5Padding加解密工具类

2020-05-01
阅读 5 分钟
4.2k
Java 实现一个AES/ECB/PKCS5Padding 加解密算法工具类 加密算法: AES 模式: ECB 补码方式: PKCS5Padding <!-- more --> 1. 工具类 {代码...} 请注意上面的实现,提供了两种方式 一个是AES加密之后使用base64编码输出,对应的是解密base64编码的数据 一个是AES加密之后,直接返回字节数组;也是直接解码字节数组...

【SpringBoot DB系列】Mybatis-Plus 代码自动生成

2020-04-10
阅读 8 分钟
1.7k
【SpringBoot DB系列】Mybatis-Plus 代码自动生成 一个简单的实例工程,介绍利用 mybatis-plus 的代码自动生成插件,根据表结构来生成对应的类和 xml 配置文件 <!-- more --> I. 代码生成 本文主要内容来自官方教程,通过实例方式介绍代码生成过程 1. 准备 准备两张表,用于测试 {代码...} 请注意,上面两张表的命...

【SpringBoot WEB系列】异步请求知识点与使用姿势小结

2020-03-31
阅读 9 分钟
1.8k
【SpringBoot WEB系列】异步请求知识点与使用姿势小结 在 Servlet3.0 就引入了异步请求的支持,但是在实际的业务开发中,可能用过这个特性的童鞋并不多? 本篇博文作为异步请求的扫盲和使用教程,将包含以下知识点 什么是异步请求,有什么特点,适用场景 四种使用姿势: AsyncContext 方式 Callable WebAsyncTask Deferr...

如何优雅的在java中统计代码块耗时

2020-03-03
阅读 4 分钟
9.6k
如何优雅的在java中统计代码块耗时 在我们的实际开发中,多多少少会遇到统计一段代码片段的耗时的情况,我们一般的写法如下 {代码...} 上面的写法没有什么毛病,但是看起来就不太美观了,那么有没有什么更优雅的写法呢? <!-- more --> 1. 代理方式 了解 Spring AOP 的同学可能立马会想到一个解决方法,如果想要统...

【SpringBoot MQ 系列】RabbitMq 消息发送基本使用姿势

2020-02-18
阅读 9 分钟
3.6k
前面两篇博文,分别介绍了RabbitMq的核心知识点,以及整合SpringBoot的demo应用;接下来也该进入正题,看一下SpringBoot的环境下,如何玩转rabbitmq

【SpringBoot MQ 系列】RabbitMq 核心知识点小结

2020-02-13
阅读 7 分钟
1.1k
RabbitMQ 是一个基于 AMQP 协议实现的企业级消息系统,想要顺畅的玩耍的前提是得先了解它,本文将主要介绍 rabbitmq 的一些基本知识点

【SpringBoot MQ系列教程】RabbitMq 初体验

2020-02-10
阅读 5 分钟
1.5k
【SpringBoot MQ系列教程】RabbitMq 初体验 mq 在异步解耦削峰的优势非常突出,现在很多的项目都会用到,掌握 mq 的知识点,了解如何顺畅的使用 mq,可以说是一个必备的职业技能点了 接下来我们进入 rabbitmq 的学习过程 <!-- more --> I. 环境准备 在测试之前,需要安装 rabbitmq,下面分别给出 mac + centos 的...

SpringBoot 系列教程之编程式事务使用姿势介绍篇

2020-02-05
阅读 5 分钟
6.3k
前面介绍的几篇事务的博文,主要是利用@Transactional注解的声明式使用姿势,其好处在于使用简单,侵入性低,可辨识性高(一看就知道使用了事务);然而缺点也比较明显,不够灵活,稍不注意,可能就因为姿势不对,导致事务不生效

SpringBoot 系列教程之事务不生效的几种 case

2020-02-05
阅读 9 分钟
1.7k
前面几篇博文介绍了声明式事务@Transactional的使用姿势,只知道正确的使用姿势可能还不够,还得知道什么场景下不生效,避免采坑。本文将主要介绍让事务不生效的几种 case

SpringBoot 系列教程之事务隔离级别知识点小结

2020-02-03
阅读 12 分钟
1.5k
上一篇博文介绍了声明式事务@Transactional的简单使用姿势,最文章的最后给出了这个注解的多个属性,本文将着重放在事务隔离级别的知识点上,并通过实例演示不同的事务隔离级别下,脏读、不可重复读、幻读的具体场景