SpringBoot整合MyBatis-Plus框架(代码生成器)

MyBatis-Plus的简介 Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 代码生成器 通用的CURD 条件构造器 自定义SQL语句 分页插件、性能分析插件 公共字段自动填充 特性 无侵入:只做增强 ... »

正则表达式匹配${key}并在Java中使用

1.正则表达式匹配$ ${([a-z]+)} 能够匹配字符串中以$形式的文本(其中key为小写应为字母) .*${([a-z]+)}.* 可以用来检测文本中是否有$形式的文本 解释如下: . 匹配除换行符 之外的任何单字符 * 匹配前面的子表达式零次或多次 要匹配*字符,请使用* { ... »

Nacos安装和配置

我们这里是在Centos7上进行的操作;首先在nacos的github 上下载安装包,直接选择最新的releases版本即可,如:nacos-server-1.4.1.tar.gz ;windows系统的话直接下载zip包安解压即可。 配置jdk(如果没有的话) 注意需要安装和配置Java环境(使用 ... »

Java并发之ThreadPoolExecutor源码解析(二)

ThreadPoolExecutor ThreadPoolExecutor是ExecutorService的一种实现,可以用若干已经池化的线程执行被提交的任务。使用线程池可以帮助我们限定和整合程序资源,尽可能避免创建新的线程来执行任务从而降低任务调用的开销,在执行大量异步任务的时候反而能获得更好的性 ... »

注解和反射学习笔记

注解和反射学习笔记 狂神注解和反射 基本把注解和反射介绍明白了,就是虚拟机这部分需从其他地方学习 注解 注解定义中,里面的定义指的是参数,不是方法,如下面这个value,表示使用时可以传递一个数组参数值到注解中。 //镇压警告的意思,当加上@SuppressWarnings("all")注解后则警告 ... »

支付宝微信合单支付

什么场景下会用到合单支付呢?下面举个例子:最常见的就是商城系统了,比如用户在一笔订单里面选择了多个不同商户的商品, 为了用户体验,在支付的时候肯定是只需要支付一次即可的; 如果我们使用传统的方式即实际后就是一笔订单,直接支付下单即可,这里确实简单了,但是我们在给商户做结算的时候就麻烦了,需要后台去统 ... »

Java操作Excel工具类(poi)

分享一个自己做的poi工具类,写不是很完全,足够我自己当前使用,有兴趣的可以自行扩展 1 import org.apache.commons.lang3.exception.ExceptionUtils; 2 import org.apache.poi.hssf.usermodel.HSSFData ... »

Java中把一个对象的值复制给另外一个对象引发的思考

Spring生态在Java项目中被广泛应用,从架构到技术应用再到常用的基本功能,Spring给我们的开发带来了很大的便利。今天翻到项目中导出报表功能的时候,发现经常复制对象的方法: BeanUtils.copyProperties; 把源对象的属性值赋值给目标对象,Spring和Apache和其他的 ... »

不可不知的 JVM 预热

一、JVM 架构基础 JVM 进程启动时,ClassLoader 会将需要的所有类加载到内存,主要分为以下三步: Bootstrap Class: 核心类库,由 “Bootstrap Class Loader”负责加载, 例如基础的运行时类库 JRElib t.jar。 Extension Cl ... »

面试必知:String、StringBuilder、StringBuffer的区别

你知道String、StringBuilder、Stringbuffer的区别吗?当你创建字符串的时候,有考虑过该使用哪个吗? 别急,这篇文章带你解决这些问题。 可变性 首先,String是字符串,我们一般这样声明: String s = "abc"; String类使用被final修饰的char数 ... »

java基础知识

##前言 在别人追问我以下几个问题,自己在问题回答上不够全面和准确,对此自己把专门针对这几个问题进行总结! ##java相关问题 ##1.Java中构造方法跟普通方法的区别? 构造方法与普通方法的调用时机不同。 首先在一个类中可以定义构造方法与普通方法两种类型的方法,但是这两种方法在调用时有明显的区 ... »

JAVA 8 新特性实用总JAVA 8 新特性实用总结结

JAVA 8 新特性实用总结 作为一个工作两年多的 老 程序猿,虽然一开始就使用 jdk1.8 作为学习和使用的版本,随着技术的迭代,现有的 JDK 版本从两年前到现在,已经飞速发展到了 JDK 15 。真的感觉有点学不动了,更新速度太快了,不过相比于现有系统以及国内趋势。大多公司还是采用最基础的 ... »

JVM系列(四):java方法的查找过程实现

经过前面几章的简单介绍,我们已经大致了解了jvm的启动框架和执行流程了。不过,这些都是些无关痛痒的问题,几行文字描述一下即可。 所以,今天我们从另一个角度来讲解jvm的一些东西,以便可以更多一点认知。即如题:jvm是如何找到对应的java方法,然后执行的呢?(但是执行太复杂,太重要,我们就不说了。我 ... »

Java集合

Collection(集合) 常用方法: 增 add(E e)//添加单一对象addAll(Collection<? extends E> c)//添加一个集合 删 remove(Object o)//删除一个对象removeAll(Collection<?> c)//删除一个集合 判空 isEmp ... »

java放射机制的学习心得

概述 之前在了解Spring的类加载机制的时候,了解了java的反射机制。但是,我对反射理解一直不深。也一直有点疑惑:Spring为什么利用反射创建对象?直接new对象和依靠反射创建对象有什么区别?什么是动态加载类? 什么是反射? 要想知道反射到底是什么,首先需要知道java的类加载和对象创建的机制 ... »

关于软件验证中的单元测试

关于软件验证中的单元测试 为什么使用单元测试 一般来说,验证的两个思路是证明和证伪,分别对应着软件验证的形式化验证和测试。 证明适用于在有明确的逻辑范畴内通过演绎推理(如三段论、假言推理等)进行;证伪可通过举出反例的方式进行。 软件领域的性质导致证明的困难及收效甚微,绝大部分都采用测试来验证。 根据 ... »

java线程池趣味事:这不是线程池

要想写出高性能高并发的应用,自然有许多关键,如io,算法,异步,语言特性,操作系统特性,队列,内存,cpu,分布式,网络,数据结构,高性能组件。 胡说一通先。 回到主题,线程池。如果说多线程是提高系统并发能力利器之一,那么线程池就是让这个利器更容易控制的一种工具。如果我们自己纯粹使用多线程基础特性编 ... »

mysql数据库表引入redis解决方案

缓存方案 缓存方案在我的另外一篇博客里有详细说明,地址:https://www.cnblogs.com/wingfirefly/p/14419728.html 数据结构: 方案1: 1.存储结构采用hash 2.索引采用二级索引模式(借鉴mysql索引)。 二级索引介绍: 1.一级索引采用id(最常 ... »

冷饭新炒:理解JWT的实现原理和基本使用

前提 这是《冷饭新炒》系列的第五篇文章。 本文会翻炒一个用以产生访问令牌的开源标准JWT,介绍JWT的规范、底层实现原理、基本使用和应用场景。 JWT规范 很可惜维基百科上没有搜索到JWT的条目,但是从jwt.io的首页展示图中,可以看到描述: JSON Web Tokens are an open ... »