随笔分类 -  技术 / Java

Java
摘要:周末发现一款数据库文档自动生成的工具项目,试了一下还不错,推荐。源码简洁,使用简单,支持多种数据库,还支持自定义输出模板。为了简便,本文采用Spring Boot Web项目,可打成jar工具使用。 源项目地址:https://github.com/pingfangushi/screw 我的项目结构 阅读全文
posted @ 2020-11-29 21:17 别名 阅读(750) 评论(0) 推荐(1)
摘要:本文主要解析Mybaties插件基本原理,所谓的插件就是Mybaties提供的Interceptor拦截器,用于SQL执行时动态对“执行方法”、“参数”、“返回值”或“SQL语句”的拦截处理。在业务很多场景都会用到,如分页和sql操作同步等场景。 1. MyBatis拦截原理 MyBatis插件可以 阅读全文
posted @ 2020-09-19 20:15 别名 阅读(273) 评论(0) 推荐(0)
摘要:本文解析MapStruct生成继承类的Spring容器对象属性注入为空问题,并分析了相关源码。给出了一个Spring容器对象属性正确注入例子。 在领域模型中经常会遇到对象属性的拷贝,对属性的手动赋值会增加不必要的工作量,而使用BeanUtils.copyProperties等工具存在其他问题。除了领 阅读全文
posted @ 2020-09-06 21:56 别名 阅读(11007) 评论(2) 推荐(2)
摘要:我们都知道Processor注解处理器在正常编译时不会被断点,对调试或者阅读插件源码带来困难。本文介绍一个Processor注解处理器便捷的断点技巧。 本文的软件环境 Idea Java 8 正常的Spring Boot web项目 Maven构建 mapstruct(该jar包含有Processo 阅读全文
posted @ 2020-09-06 15:29 别名 阅读(706) 评论(0) 推荐(0)
摘要:生成连续唯一的序列号在很多业务场景都会需要,本文分享一个在分布式环境利用数据库生成连续唯一序列的例子(按天生成),在并发不是特别高的大型场景还是值得一干。文中采用版本(version)机制,结合自旋锁 + 乐观锁生成连续的唯一的数字。 直接上代码 1. 创建表test_no CREATE TABLE 阅读全文
posted @ 2020-08-21 21:40 别名 阅读(495) 评论(0) 推荐(0)
摘要:接上文“Feign封装请求基本原理(启动和注入)”,本文看一个Feign请求的过程。 一、远程方法对应的MethodHandler创建 在注入Feign代理对象的bean时,会给@FeignClient注解接口下所有符合条件的方法生成对应的MethodHandler,该操作是在ReflectiveF 阅读全文
posted @ 2020-07-31 23:45 别名 阅读(1683) 评论(0) 推荐(0)
摘要:通过一个例子看基于Feign的http请求原理。对Feign的操作主要分为:项目启动时处理、IOC容器注入时处理;实际的调用处理。目录: 1、例子; 2、项目启动时:Feign引入; 3、Bean的注入:@Autowired等; 4、接口方法的调用; 1. 例子 例子是一个用Maven管理的Spri 阅读全文
posted @ 2020-07-31 00:29 别名 阅读(2686) 评论(0) 推荐(0)
摘要:本文从HashMap.KeySet对象的交集和差集看HashMap相关源码。 1. 下面例子的错误操作 package com.mingo.exp.verify.set; import java.util.HashMap; import java.util.Map; import java.util 阅读全文
posted @ 2020-07-23 01:19 别名 阅读(531) 评论(0) 推荐(0)
摘要:前段时间对老项目做性能优化时,发现用hibernate-validator校验数据约束,首次检验某个实体类耗时较长,本文探讨其中的原因,并给出优化建议。 1. 校验测试 ValidateTest1DTO.java代码如下 package com.mingo.exp.validate; import 阅读全文
posted @ 2020-06-20 16:39 别名 阅读(1865) 评论(0) 推荐(0)