- 博客(238)
- 资源 (1)
- 收藏
- 关注
原创 Seata2.0.0 + DynamicDatasource4.3.1 + SharidingSphere5.5.0 整合
SEATA AT模式在分库分表、多数据源的情况下的整合使用(支持嵌套)
2024-08-18 14:59:38
581
原创 扩展mybatis-plus,保留逻辑删、逻辑查的前提下,扩展硬删除、硬查询
【代码】扩展mybatis-plus,保留逻辑删、逻辑查的前提下,扩展硬删除、硬查询。
2023-12-26 09:50:41
5838
原创 spring-boot集成spring-brick实现动态插件
各plugin-api的包名,应该处于主程序包名(本人这里为plugin.mainPackage=com.example.springbrick.application)的子集。如果不这样设置的话,主程序和插件实现程序加载plugin-api中的类时,将被类加载器隔离。提示:本人这里进行简单验证说明,更多验证可以去文末下载源码,自己跑起来后完成验证。各plugin-api的实现程序,继承不继承父类plugin-api都可以。本文的集成说明,是针对完成此设计、此需求进行的。访问测试类,观察控制台输出。
2023-06-07 15:54:39
19149
8
原创 springcloud-gateway集成knife4j(swagger3)
对于管控了权限的微服务,应放行以下资源。保证启动了knife4j。各微服务&网关引入依赖。
2023-05-09 14:59:13
9331
1
原创 springboot2集成knife4j(swagger3)
此controller中用到的相关模型。对于管控了权限的应用,应放行以下资源。提示:可以借助配置文件,进一步改造。保证启动了knife4j。启动项目后,直接访问。
2023-05-09 00:28:16
4255
原创 mybatis-plus自controller开始一键生成CURD代码
mybatis-plus生成表对应的entity、service、mapper、controller,同时生成CURD逻辑及相关VO模型
2022-09-11 11:37:46
1781
1
原创 对普通bean进行Autowired字段注入
对普通bean进行Autowired字段注入对普通bean进行Autowired字段注入工具类使用测试工具类import lombok.Getter;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.SmartInitializingSingleton;import org.springframework.beans.factory.config.AutowireCapableBean
2022-04-21 13:51:45
990
原创 一个简单的(基于redisson的)分布式同步工具类封装
一个简单的(基于redisson的)分布式同步工具类封装一个简单的(基于redisson的)分布式同步工具类封装背景说明准备工作第一步:引入redisson依赖第二步:配置RedissonClient工具类工具类接口工具类接口的默认实现工具类接口涉及到的两个其它接口使用示例背景说明有些分布式同步逻辑不需要作用于整个方法,只需要作用于指定的业务逻辑代码块即可,类似于synchronized代码块。于是有了下面这个简单的封装类。准备工作提示:此同步工具类中的r
2022-04-19 21:33:16
4780
1
原创 @MapperScan与@Mapper
@MapperScan与@Mapper@MapperScan与@Mapper背景说明@MapperScan与@Mapper的作用通过@Mapper让Mybatis对接口提供代理实现通过@MapperScan让Mybatis对接口提供代理实现背景说明我们在编写mapper时,只需要编写接口而不需要对其实现,由Mybatis框架对接口提供对应的代理实现类(,并将代理实现类注册进容器中)。但是Mybatis是怎么知道需要对哪些接口进行代理实现呢,就是通过@MapperScan与@Mappe
2022-04-17 12:03:39
3094
原创 利用FunctionalInterface获取类、字段、方法
利用FunctionalInterface获取类、字段、方法利用FunctionalInterface获取类、字段、方法背景说明原理说明原理原理示例实际应用应用说明工具类封装测试一下注意事项相关资料背景说明最近有看到同事用mybatis-plus的LambdaQueryWrapper写查询逻辑,其中本来应该传列名的位置直接使用了lambda来完成:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2GkeuNBw-16494820
2022-04-09 13:27:55
1404
原创 mapstruct对象复制&转换
mapstruct对象复制&转换mapstruct对象复制&转换简介使用步骤简述第一步:引入相关依赖第二步:定义Mapper转换器第三步:使用Mapper转换器获取Mapper实例的方式default模式spring模式cdi模式和jsr330模式常用知识点target是新对象target是已有对象字段名不同时指定默认值常量值多个字段映射多级字段定位多个source字段大小写不同时忽略字段枚举与字符串枚举与枚举隐式类型(自动)
2022-03-28 19:01:20
9550
原创 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
3405
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
1981
6
原创 idea插件编写
idea插件编写idea插件编写准备工作:添加对应版本的JDK编写插件第一步:创建IntelliJ Platform Plugin项目第二步:配置plugin.xml,填写基本信息第三步:编写插件、配置插件方式一:完全手动方式二:借助IDEA插件开发助手IDEA Plugin DevKit Helper,半自动第四步:运行、调试插件第五步(可选):引入依赖第六步:打包插件第七步:安装插件相关资料准备工作:添加对应版本的JDK编写插件时,不同版本的Inte
2021-12-11 15:42:47
7672
5
原创 使用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
14049
1
原创 QDox代码解析
QDox代码解析QDox代码解析简介maven坐标解析被类加载器加载的class解析源码相关资料简介QDox是一种高速、小巧的解析器。主要用于解析java源码,也能用于解析被类加载器加载了的class。maven坐标<dependency> <groupId>com.thoughtworks.qdox</groupId> <artifactId>qdox</artifactId> <ve
2021-11-01 02:30:30
2219
11
原创 args4j简单使用示例
args4j简单使用示例args4j简单使用示例第一步:引入依赖第二步:封装参数对象第三步:在main方法中进行解析测试验证相关资料第一步:引入依赖<dependency> <groupId>args4j</groupId> <artifactId>args4j</artifactId> <version>2.33</version></dependency>
2021-10-14 01:29:56
1060
原创 智能合约的函数与函数修饰符
智能合约的函数与函数修饰符智能合约的函数与函数修饰符概述Solidity函数定义payable关键字函数修饰符与函数能力函数修饰符函数能力相关资料概述与传统编程不同的是,在智能合约开发时没有主函数入口这样从上到下的流程逻辑。如果把智能合约理解为一个进程的话,开发的函数是为了提供与该进程交互的接口。Solidity函数定义function func_name(paramlist...) modifiers returns (returnlist...)
2021-10-13 00:14:56
1306
原创 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
551
原创 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
782
原创 mybatis自定义类型处理器
mybatis自定义类型处理器mybatis自定义类型处理器相关说明编写类型处理器启用类型处理器方式一:直接用mybatis总配置类注册处理器方式二:通过配置文件指定处理器所处的包方式三:在编写SQL时,指定类型处理器相关说明本文以java枚举GenderEnum与数据库表列类型char相互转换为例进行示例说明。现有Employee类@Data@Builder@NoArgsConstructor@AllArgsConstructorpublic class
2021-09-12 17:34:46
774
1
原创 初识Solidity、Remix与Geth节点结合部署智能合约
初识Solidity、Remix与Geth节点结合部署智能合约初识Solidity、Remix与Geth节点结合部署智能合约初识SolidityRemix与Geth节点结合部署智能合约第一步:访问http://remix.ethereum.org/,进入以太坊智能合约在线IDE工具Remix第二步:创建并编写sol文件第三步:编译第四步:部署相关资料初识Solidity目前支持智能合约的区块链平台很多,智能合约的开发语言也有多种选择。以太坊智能合约的开发语言主要采用So
2021-09-04 23:15:11
13000
2
原创 区块链开发技术选型
区块链开发技术选型区块链开发技术选型DApp架构公链与联盟链相关资料DApp架构DApp,即Decentralized Application,去中心化应用。我们知道,一般的,一个完整的项目包括:展示操作层、逻辑层、存储层。区块链是可以作为逻辑层(通过智能合约实现逻辑处理)、存储层(通过区块链结构存储数据)的实现的。简单的,我们可以这么说:如果应用中使用到了区块链等去中心化技术,那么我们就可以认为这个应用是DApp应用,不同的只是说这个去中心化技术在应用中的应用占比不同而已。
2021-08-11 00:51:34
8854
1
原创 【Go基础】搭建HTTP服务端
搭建HTTP服务端搭建HTTP服务端ListenAndServe函数HandleFunc函数搭建HTTP服务端(示例)相关资料ListenAndServe函数ListenAndServe函数是用来侦听并启动服务的,它同时完成了绑定ip和端口、启动侦听、提供HTTP服务的作用。格式:func ListenAndServe(addr string, handler Handler) erroraddr:服务器地址handler:服务器提供服务的函数指针,一般填nilH
2021-08-08 14:18:25
2282
2
原创 【Go基础】搭建TCP服务端、客户端
搭建TCP服务端、客户端搭建TCP服务端、客户端TCP基础介绍服务端Listen函数客户端Dial函数搭建TCP服务端、客户端示例相关资料TCP基础介绍 TCP协议(Transmission Control Protocol)是一个安全、可靠、稳定、有序的数据报传输协议。如果说网络层(通过ip地址)解决了主机识别的问题,那么TCP协议则是(通过端口号)解决了如何识别主机上唯一一个进程的问题。 TCP还定义数据报的请求序号和确认序号,以确保消息的准确有序。 TCP通过三次
2021-08-08 14:17:09
1512
原创 【Go基础】文件IO的处理、延迟调用
文件IO的处理、延迟调用文件IO的处理打开、创建文件File的相关方法相关资料打开、创建文件格式:func OpenFile(name string, flag int, perm FileMode) (*File, error)name:要打开的文件名flag:打开的权限。其取值采用位指示器方式,参数值如下:O_RDONLY:只读。必选项,与O_WRONLY和O_RDWR三者选其一。O_WRONLY:只写。必选项,与O_RDONLY和O_RDWR三者选
2021-08-08 14:14:26
325
原创 【Go基础】并发编程
并发编程并发编程Go并发的设计相关概念启动协程同步通道channel创建channelchannel的读写单方向channel定时器相关资料Go并发的设计 Go语言最大的特色是并发,而且Go的并发并不像线程或进程那样,受CPU核心数的限制,只要你愿意,你可以启动成千上万个Goroutine协程。相关概念进程:最小的系统资源申请单位。线程:最小的执行单位,一个进程内可以启动多个线程。协程(Goroutine):协程是比线程还要小的执行单位,准确地说
2021-08-08 14:13:30
194
原创 【Go基础】结构体、方法封装、结构体内嵌、接口
结构体、方法封装、结构体内嵌、接口结构体、方法封装、结构体内嵌、接口结构体定义结构体结构体变量的声明、赋值方法封装结构体的组合与内嵌组合内嵌(即:继承)接口相关资料结构体定义结构体在很多语言中,面向对象编程需要使用"class"来定义类,在Go语言中并没有"class"关键字。早Go语言中,星耀面向对象编程,习惯上会先自定义一个类型,这个类型一般会以结构体的形式呈现:type TypeName struct { fieldName1 T1 field
2021-08-08 14:11:45
1296
原创 【Go基础】数组、切片、Map
数组、切片、Map数组、切片、Map数组array切片slice键值对map相关资料数组array格式形如:var variable_name [SIZE]variable_type注:数组的长度是固定的示例一:基操import "fmt"func main() { var arr [3]string = [3]string{"张三", "李四", "王五"} fmt.Println(arr) // 输出:[张三 李四 王五]}示例二:如果不赋值,那
2021-08-08 14:08:29
199
原创 【Go基础】函数
函数函数基本介绍匿名函数函数闭包相关资料基本介绍基础格式形如:func function_name ([parameter list]) [return_types] { 函数体}func:function的缩写,是定义函数的关键字。function_name:函数名。[parameter_lists]:函数列表,可以有0个或多个。[return_types]:返回值类型,可以有0个或多个返回值。示例一:基操import "fmt"func ma
2021-08-08 14:07:31
109
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人