![](https://img-blog.csdnimg.cn/20190904142555506.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java知识大杂烩
文章平均质量分 79
justry_deng
很多不会不懂不了解不明白,我只是一个善于记录的普通coder
展开
-
扩展mybatis-plus,保留逻辑删、逻辑查的前提下,扩展硬删除、硬查询
【代码】扩展mybatis-plus,保留逻辑删、逻辑查的前提下,扩展硬删除、硬查询。原创 2023-12-26 09:50:41 · 5658 阅读 · 0 评论 -
springcloud-gateway集成knife4j(swagger2)
springcloud-gateway集成knife4j原创 2023-03-12 12:50:02 · 1880 阅读 · 0 评论 -
springboot2集成knife4j(swagger2)
springboot2集成knife4j原创 2023-03-11 12:49:34 · 4918 阅读 · 0 评论 -
sharing-sphere单库分表(入门级示例)
sharding-sphere分库分表原创 2022-10-07 19:50:33 · 1843 阅读 · 0 评论 -
mybatis-plus自controller开始一键生成CURD代码
mybatis-plus生成表对应的entity、service、mapper、controller,同时生成CURD逻辑及相关VO模型原创 2022-09-11 11:37:46 · 1326 阅读 · 1 评论 -
@MapperScan与@Mapper
@MapperScan与@Mapper@MapperScan与@Mapper背景说明@MapperScan与@Mapper的作用通过@Mapper让Mybatis对接口提供代理实现通过@MapperScan让Mybatis对接口提供代理实现背景说明我们在编写mapper时,只需要编写接口而不需要对其实现,由Mybatis框架对接口提供对应的代理实现类(,并将代理实现类注册进容器中)。但是Mybatis是怎么知道需要对哪些接口进行代理实现呢,就是通过@MapperScan与@Mappe原创 2022-04-17 12:03:39 · 2861 阅读 · 0 评论 -
URL匹配之AntPathMatcher
URL匹配之AntPathMatcherURL匹配之AntPathMatcher背景说明Ant基础通配符简介AntPathMatcher常用方法介绍及示例常用的构造方法extractUriTemplateVariables(String pattern, String path):根据pattern的规则,从path中抽取对应的变量值isPattern(String str):判断str是否可以作为一个pattern匹配器match(String pattern, String pat原创 2022-03-21 17:31:21 · 2575 阅读 · 1 评论 -
【idea插件】JavaBean(支持泛型)转JSON、生成调用getter代码
插件名:Fast Coding插件源码:https://gitee.com/JustryDeng/idea-plugin-fast-coding插件官网:https://plugins.jetbrains.com/plugin/18351-fast-coding插件使用示例:示例一(常规用法):示例二(识别泛型的用法):...原创 2022-01-13 20:48:54 · 1849 阅读 · 6 评论 -
使用GUI Form快速创建简单界面
使用GUI Form快速创建简单界面使用GUI Form快速创建简单界面简述准备工作使用示例第一步:创建类及对应的form文件第二步:给From中的组件JPanel起一个字段名(,否者下面在生成main方法时会报错)第三步:拖动组件,在画板中完成UI第四步:给组件添加监听第五步:生成main方法第六步:运行main方法,(idea自动)生成GUI对应源码第七步:将项目打成可执行jar包,以便使用相关资料简述GUI Form是IntelliJ IDEA提供的快速创建GU原创 2021-12-11 10:28:45 · 12536 阅读 · 1 评论 -
class热更新
class热更新class热更新功能与特性maven坐标使用示例功能与特性支持基于 java源码 ,走 文件 进行class热更新支持基于 java源码 ,走 内存 进行class热更新支持基于 class字节码 ,走 文件 进行class热更新支持基于 class字节码 ,走 内存 进行class热更新maven坐标<dependency> <groupId>com.idea-aedi</groupId> <a原创 2021-10-09 22:52:08 · 423 阅读 · 0 评论 -
Java超实用小组件
componentscomponentscomponent-compile:编译maven坐标使用示例component-decompile:反编译maven坐标使用示例component-decompile:dump出classmaven坐标使用示例component-compile:编译maven坐标<dependency> <groupId>com.idea-aedi</groupId> <原创 2021-09-27 23:23:14 · 551 阅读 · 0 评论 -
mybatis自定义类型处理器
mybatis自定义类型处理器mybatis自定义类型处理器相关说明编写类型处理器启用类型处理器方式一:直接用mybatis总配置类注册处理器方式二:通过配置文件指定处理器所处的包方式三:在编写SQL时,指定类型处理器相关说明本文以java枚举GenderEnum与数据库表列类型char相互转换为例进行示例说明。现有Employee类@Data@Builder@NoArgsConstructor@AllArgsConstructorpublic class原创 2021-09-12 17:34:46 · 639 阅读 · 1 评论 -
logback-defender实现日志脱敏
Gitee地址 https://gitee.com/JustryDeng/logback-defenderlogback-defender介绍 logback-defender是一款基于logback实现的无侵入的日志脱敏工具框架,使用此框架,只需要简单的三步。功能特性(默认提供)支持json脱敏器(默认提供)支持string脱敏器(默认提供)支持正则脱敏器支持自定义脱敏器支持通过插件实现局部自定义脱敏器(即:轻量的自定义脱敏器)前置依赖jdk8+logbackspr.原创 2021-08-01 13:52:03 · 1425 阅读 · 0 评论 -
log4j2-defender实现日志脱敏
Gitee地址 https://gitee.com/JustryDeng/log4j2-defenderlog4j2-defender介绍 log4j2-defender是一款基于log4j2实现的无侵入的日志脱敏工具框架,使用此框架,只需要简单的三步。功能特性(默认提供)支持json脱敏器(默认提供)支持string脱敏器(默认提供)支持正则脱敏器支持自定义脱敏器支持通过插件实现局部自定义脱敏器(即:轻量的自定义脱敏器)前置依赖jdk8+log4j2spring-b.原创 2021-07-25 20:28:10 · 1013 阅读 · 9 评论 -
mybatis-data-security实现数据库数据加解密
Gitee地址 https://gitee.com/JustryDeng/mybatis-data-security# mybatis-data-security介绍 mybatis-data-security提供了一种基于注解实现数据库数据加解密的功能支持。原理 编写mybatis interceptor实现,对业务代码无侵入,在入库前加密,出库前解密。前置条件项目采用mybatis作为持久层框架功能特性项目启动时分析并校验加解密信息,若使用不当则快速失败支持直接对St.原创 2021-07-19 23:04:05 · 1457 阅读 · 1 评论 -
【规则引擎】之easy-rules入门
https://github.com/j-easy/easy-rules简介 在写业务逻辑时,我们不可避免的会使用到if这样的语法;对于特别复杂的业务场景,那么就可能会写很多"并联"或"串联"的if,冗余又不好管理;此时,我们不妨引入规则引擎。在我看来,规则引擎中的"规则即对应if",规则引擎中的"引擎则是统筹管理这些if"的大脑。 当下规则引擎有很多,如DROOLS、OPENL TABLETS、EASY RULES、RULEBOOK等等,其中DROOLS的功能强大且完善,社区也非常活跃,但.原创 2021-06-22 00:07:41 · 3378 阅读 · 2 评论 -
【工具类】加载外部jar(普通jar和springboot jar)、class
特性支持加载普通jar支持加载spring-boot jar支持加载class支持加载多文件多文件夹支持过滤class实例工具类import lombok.extern.slf4j.Slf4j;import java.io.ByteArrayOutputStream;import java.io.Closeable;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;im原创 2021-06-20 02:31:57 · 1312 阅读 · 0 评论 -
代码混淆之class-winter
郑重声明 class-winter是本人在学习完class-final(v1.1.9)后,仿照class-final进行编写的,整体思路与class-final一致,代码部分(约20%~30%)复用了class-final中的代码。一定程度上,可将class-winter看作是class-fianl的一个分支。功能与特性支持war加密。支持jar(普通jar+可执行jar)加密。加密方式方式一:通过maven插件自动加密。<!-- class-winter插件原创 2021-06-16 01:33:38 · 15125 阅读 · 21 评论 -
spring-boot发送mail邮件
https://docs.spring.io/spring-framework/docs/5.3.4/reference/html/integration.html#mail简介: SpringBoot在Spring提供的抽象可定制的JavaMailSender邮件机制的基础上,作了一些封装和实现,以实现开箱即用、配置即用快速开发。下面就简单示例一下如何使用spring boot mail,更多可详见官网https://docs.spring.io/spring-framework/docs/5.原创 2021-03-10 00:26:51 · 1427 阅读 · 2 评论 -
thumbnailator图片处理
笔者语录: 一直在学习,哈哈,只是好一阵子没有发文章了。一是现在做的东西相关技术不能乱发,二是我的下班后又投身于做其它的东西(保密哈哈),所以写博客的时间变得极少。今天冒个泡,简单分享验证一下个小工具类api吧。准备工作:引入thumbnailator依赖。<!-- https://mvnrepository.com/artifact/net.coobird/thumbnailator --><dependency> <groupId>net.coobir原创 2021-02-26 23:24:19 · 425 阅读 · 1 评论 -
基于docker的test-containers环境百宝箱
笔者语录: 我开了个公众号【Java你我他】,欢迎大家关注。 在很多时候,程序猿们更关注代码本身,而不愿意把时间花费在环境搭建上,这也是Docker变得越来越受欢迎的原因之一。test-containe是Docker生态圈中的一颗新星,其 主要针对测试领域、背靠Docker实现环境百宝箱功能。 test-containers: 你要的环境,我都有~ 假设我们现在需要一个redis-cluster环境来学习reids pipeline相关的代码知识,那么就需要搭建一套redis集群:环原创 2020-11-20 16:59:24 · 1790 阅读 · 2 评论 -
logback使用filter过滤日志
笔者语录: 我发现我喜欢捣鼓一些小玩意儿,虽然官网(见文末)写得很明白了,但是咱们对感兴趣的部分来敲一遍代码好吧。过滤器简介:简介 logback具有过滤器支持。logbcak允许给日志记录器appender配置一个或多个Filter(或者给整体配置一个或多个TurboFilter),来控制:当满足过滤器指定的条件时,才记录日志(或不满足条件时,拒绝记录日志)。logback支持自定义过滤器,当然logback也自带了一些常用的过滤器,在绝大多数时候,自带的过滤器其实就够用了,一般是不需要自定原创 2020-08-18 13:02:33 · 15706 阅读 · 2 评论 -
【JSR269实战】之编译时操作AST,修改字节码文件,以实现和lombok类似的功能
笔者日常: 兄弟姐妹们,还是尽量少熬夜啊。我感觉我记性有所下降,难受。需求说明(本文以实现此需求为例进行说明): 现在有一个需求,就是要给枚举类生成一个内部类,这个内部类中以静态常量的形式记录外部枚举类所有枚举项的值,即:编译前是java文件是这样的:(编译时操作AST,)编译后的class文件是这样的:编译时操作AST,修改字节码文件:软硬件环境说明: JDK1.8、Mavne3.6.3、IntelliJ IDEA。项目整体(步骤)说明:第一步:创建一个普通的maven项目原创 2020-05-17 16:58:04 · 2918 阅读 · 4 评论 -
Mybatis之一个SQL的运行过程
阅前必读:本文测试项目及相关总结资料,均放置在文末链接处。强烈建议去拽下来,看xmind脑图并结合源码进行理解。本人是先绘制的xmind脑图,然后根据xmind脑图发的此博文,无论是可读性、还是层次感,xmind脑图都由于文字。Mybatis中逻辑很多,而本文重点关注的是Mybatis中SQL相关的逻辑,其余部分会简述或直接略过。本文主要分享的内容是:启动项目时,与SQL相关的逻辑启动项目后,执行CURD方法时,与SQL相关的逻辑六问Mybatis插件文末链接指向的本人的测试项目,是原创 2020-05-10 01:55:13 · 1445 阅读 · 1 评论 -
spring-boot-starter的关键、编写示例
笔者语录: 话不多说,直接开干。spring-boot-starter的关键:@SpringBootApplication注解源码是这样的: @ComponentScan注解的作用是把(@SpringBootApplication所在的)入口类所在的包(及其子包)下的所有被@Component注解(或拓展了@Component的注解)标记了的bean注册到spring容器中。那么,处于...原创 2020-04-04 21:41:08 · 695 阅读 · 0 评论 -
Spring Retry重试组件、Guava Retry重试组件
个人看法: spring-retry更好。软硬件环境: IntelliJ IDEA、SpringBoot2.2.4.RELEASE。Spring的Retry组件:提示: spring-retry的使用方式可分为注解式和编码式,注解式采用代理模式依赖于AOP,而编程式则可以直接调用方法。注解式无疑更优雅,但是使用注解式的时候,要注意避免各个AOP执行顺序差异带来的问题,在这个环节的末尾,会简...原创 2020-02-27 00:15:19 · 2705 阅读 · 1 评论 -
SpringBoot之Actuator入门
笔者寄语: 笔者最近去医院检查了一下,脂肪肝,反思了笔者之前的恶习,在这里给广大程序猿朋友们一些建议:少熬夜少久坐,多运动少点外卖,尽量自己做饭 Spring Boot Actuator主要用于监控和度量SpringBoot应用程序。主要有三种观察Actuator信息的方式:Web端点、远...原创 2019-11-29 14:18:16 · 1730 阅读 · 2 评论 -
事件监听(基于SpringBoot示例)
在实际开发中,业务代码与辅助代码的解耦是一个热点话题,如:通过AOP记录入参出参、使用事件监听记录错误信息等是一个不错的选择。概述: 事件的发布与监听从属于观察者模式;和MQ相比,事件的发布与监听偏向于处理“体系内”的某些逻辑。事件的发布与监听总体分为以下几个步骤:步骤相关事宜...原创 2019-11-25 12:57:17 · 3840 阅读 · 2 评论 -
SpringBoot使用jasypt加密密码等重要信息
笔者日常:这几天笔者换公司了,中途休息了几天,找工作又花了几天,博客这阵子有点落下了。jasypt简单介绍: jasypt是国外开发者(@author Daniel Fernández)写的一个对PropertySource资源进行加密保护的依赖工具。我们可以使用其来对一些敏感信息(如:配置文件中的各种账号密码)进行加密保护。jasypt原理及加解密密钥位置方式说明:原...原创 2019-07-13 06:50:42 · 4652 阅读 · 1 评论 -
commons-io之FileUtils、IOUtils
笔者日常:这是笔者来深圳后的第一篇博客~记录一下,2019-06-25。commons-io简单说明:Common IO 是一个工具库,用来帮助开发IO功能 它包括6个主要部分: 一些工具类:包括一些静态方法来执行常用任务。 输入:InputStream 和 Reader 实现。 输出:OutputStream 和 Writer 实现。 过滤器:多种文件...原创 2019-06-25 14:17:15 · 3391 阅读 · 0 评论 -
ShardingSphere之分库&分表
笔者日常:看朋友发了一篇关于ShardingSphere的文章,我对ShardingSphere挺感兴趣的,于是就学了下。目录辅助理解【分库分表示例】之需求与库表说明 需求说明 需求相关表【分库分表示例】之代码实现 准备工作 Sharding分片配置测试一下 测试准备...原创 2019-06-05 01:32:14 · 12075 阅读 · 8 评论 -
@ConfigurationProperties绑定配置信息至Array、List、Map、Bean
声明:本文主要以图片为主进行说明。测试项目代码托管链接在文末。相关说明:在SpringBoot中,我们可以通过以下几种方式获取并绑定配置文件中的信息: @Value注解。 使用Environment。 @ConfigurationProperties注解。 通过实现ApplicationListener接口,注册监听器,进行硬编码获取,可参考https:...原创 2019-06-03 21:02:11 · 31467 阅读 · 8 评论 -
Calendar类的简单使用
声明:这里只示例一些简单运用,更详细的内容见API文档;以后有机会的话,我再回来进一步示例说明。 Calendar是抽象类,不能直接new,我们可以通过Calendar.getInstance()或new GregorianCalendar()来获取它的实例。注:GregorianCalendar是Calendar抽象类的实现类。获取实例 获取年 获取月...原创 2018-06-26 19:52:36 · 1021 阅读 · 0 评论 -
SpringBoot使用JWT入门级示例
声明:这只是一个入门级的JWT示例教学,欢迎各位朋友踊跃发言,一起探讨进步。声明:本文不介绍JWT相关概念,也不比较JWT的各个类库,对相关概念、JWT各个类库感兴趣的朋友可 自行查阅相关资料;本文直接演示示例使用入门级JWT。提示:本人较懒,不想什么基本的东西都自己写,所以这里使用了JWT众多类库中的nimbus-jose-jwt类库。 本文中...原创 2019-07-21 17:47:37 · 3014 阅读 · 0 评论 -
Spring中Bean的几种实现初始化(或销毁)的方式及其执行顺序
声明:本文测试环境为SpringBoot。提示:本文以图片说明为主,文字版的测试代码,可见文末的代码托管链接。 有时,我们需要在bean创建后(或者bean销毁前),做一些事情,方式方法有很多,下面介绍如何通过【初始化/销毁相关方法】来达到我们的目的。常用初始化后(或销毁前)做逻辑的方式: 实现InitializingBean接口、DisposableBean接口。...原创 2019-08-18 19:03:08 · 851 阅读 · 0 评论 -
SpringBoot使用fastjosn作为消息转换器、fastjosn对日期的处理、自定义序列化器解决SerializerFeature兼容问题
笔者日常:说实话,这篇博客,过程有点曲折;我想搞明白为什么众多特性不兼容,自己跟了源码、看 了动态生成的class文件,可能水平不够,我找了很久还是没找到原因,于是请教了一位大神, 那么久过去了,一点回信也没有,哎~起码的尊重呢,可能太忙了吧。SpringBoot使用fastjson作为消息转换器的步骤:第一步:引入f...原创 2019-08-14 15:17:31 · 2740 阅读 · 0 评论 -
SpringBoot自定义参数解析器,使被@RequestBody标注的参数能额外接收Content-Type为application/x-www-form-urlencoded的请求
基础知识介绍: 在SpringBoot里,若Controller层里方法的形参前使用了@RequestBody注解,那么该参数将会被RequestResponseBodyMethodProcessor解析器进行解析,若此时Content-Type为application/x-www-form-urlencoded,那么会报Unsupported Media Type错误,这就要求:...原创 2019-08-20 19:46:09 · 13494 阅读 · 4 评论 -
生成二维码、识别二维码的工具类
笔者日常: 第一次用markdown写文章,有点手生~声明: 此工具类由本人二次整理改造后分享给大家,原编写者未知,虽然本人重写了大部分逻辑代码,但是核心部分仍然是采用的原来的代码。若涉及侵权问题,请随时联系笔者。软硬件环境说明: Windows10、IntelliJ IDEA、SpringBoot 2.1.8.RELEASE。工具类使用示例: 生成二维码: 方式一:执行方...原创 2019-09-10 15:44:04 · 1284 阅读 · 1 评论 -
ThreadLocal数据观察及原理验证
笔者日常: 需要学点前端的东西!从今天开始,以后发博客按照二后一前的规律进行发表!!!声明: 本文主要演示如何观察及证明ThreadLocal,ThreadLocal原理会几句话带过。ThreadLocal原理(简述): Thread类有一个threadLocals字段,该字段类型为Thread...原创 2019-09-27 15:49:42 · 418 阅读 · 0 评论 -
Java远程执行Shell指令
JSch(Java Secure Channel)是SSH2的一个纯Java实现。它允许你连接到一个sshd 服务器,进而使用端口转发,X11转发,文件传输等等功能。在前面的博客里,有介绍到如何使用JSch实现SFTP的相关操作,本文这里主要介绍如何利用JSch进行远程Shell操作。软硬件环境说明:Windows10、IntelliJ IDEA、SpringBoot 2.1....原创 2019-04-29 23:18:12 · 9542 阅读 · 0 评论