基于MybatisGenerator一键生成工程代码,重复性工作交给它准没错

8bd0aa4b09f4da0da562be8d50542b01.jpg
现在大多数的项目都是分多层结构,经典的如遵循MVC规范(Model-View-Controller),如果按照DDD领域模型设计可能会划分更多层,每一层需要创建多个类似模式的类文件和内容,包括类名、注释、属性、方法等,基于数据模型生成代码的插件和工具有很多,比如mybatis-plus、mybatis-generator、mybatisx等,当然市面上也有许多代码自动生成的产品,这些代码生成方式大部分都是生成固定文件结构,但是大多公司一般有自己的一套框架结构或者重新设计的分层结构,这个时候就需要自定义代码生成文件格式,包括生成文件位置和内容格式,今天为大家带来基于mybatis-generator插件的方式实现自定义代码结构,更好的适配现有代码工程。

阅读更多

Java8 Stream 提高编码效率,早点下班

编程中操作集合数据是非常频繁的,使用Java8 中的Stream对集合处理,结合Lambda函数式编程能极大的简化代码,合理的使用Stream能提高代码可读性,另一方面从Java8面世以来Stream API经过了无数项目的实践考验,其稳定性和性能自不必说,网上有很多相关的性能测试案例可以查阅参考,如果有人对你说:Lambda 可读性不好,维护成本高等一些问题,你大可放心,请一定看下最后的注意点。

阅读更多

神器MapStruct,性能爆棚的实体转换 _ 复制工具

image.png
Java项目中实体转换无处不在,当实体字段较多或者大批量的进行复制时,通过手工setter/getter显得太LOW,同时兼备高性能要求情况下,MapStruct完全完全能够胜任。官方解释,MapStruct是一个代码生成器,它基于约定优于配置的方法,极大地简化了Java bean类型之间映射的实现。生成的映射代码使用普通方法调用,因此快速、类型安全且易于理解。因为MapStruct是在编译期间生成setter/getter方法,实际运行时就是直接调用setter/getter,效率会非常高。

阅读更多

Java没有扩展方法?是你没有找对方法

扩展方法能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。对于用 C# 和 Visual Basic 编写的客户端代码,调用扩展方法与调用在类型中实际定义的方法没有明显的差异。

阅读更多

编译期动态替换三方包中的Class文件

背景

最近做业务时遇到一个问题,客户想在底层数据添加一个字段,只能乖乖的添加表字段、实体添加对应属性,一切都在预期中进行这,但是这个工程是经过二开的,展示层实体没法直接添加,于是想当然继承实体扩展字段,没想到顶层一堆Request、Response,如果一个一个进行扩展马也得累死,于是就思考有没有简便的方法仅对目标实体进行操作来完成字段添加的方法。

阅读更多

接口异步调用,接口耗时减少的可不是一点点

随着业务发展,底层数据量越来越大,业务逻辑也日趋复杂化,某些接口耗时也越来越长,这时候接口就需要进行性能优化了,当然性能优化主要跟业务相关涉及改造点可能各不相同,这里就来介绍异步调用多个接口减少响应时间。

阅读更多

单例模式-DCL

铁子们有段时间没有更新了,最近忙着准备面试,准备过程中发现自己还需要积累的实在是太多太多,每每学到新东西的感觉真是美妙而又动力十足啊,继续伸直腰杆、努力前进。

单例模式-DCL

双重检查判断,使用volatile关键字禁止指令重排,在多线程情况下创建安全的单例对象,直接上代码

阅读更多