首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
java
木原金
创建于2021-10-13
订阅专栏
java笔记
等 9 人订阅
共26篇文章
创建于2021-10-13
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
反射构造最佳性能的替代方案:关于 Lambda、泛型、MethodHandle 、受检异常的技巧运用
从最基础的反射如何一步步优化演变到最佳方案,关于 Lambda、泛型、MethodHandle 、受检异常的技巧运用
摆脱 --add-opens,使用 Unsafe 突破 Java17 强封装
前言 众所周知,在 Java16 版本之后,Java 使用了强封装,任何对 JDK 内部类的反射、使用,都要在编译期添加--add-exports,在运行时添加--add-opens,否则就无法通过编
JavaCompiler API 为什么这么慢?如何将动态编译的速度优化一千倍
众所周知,动态编译即在 java 运行时编译 java 代码的方法有常见的三种: JSR199 JavaCompiler API —— Java 1.6 以上 JDK tools.jar 提供(通常在
升级java17 springboot3 解决编译运行中的反射/使用JDK内部类导致模块报错问题
解决升级java17 springboot3 遇到的编译与运行问题`because module java.base does not export sun.reflect.generics.pars
Junit5 设置默认按声明顺序执行测试方法
前言 Junit5 中可以使用@TestMethodOrder 注解指定当前测试类的测试方法运行顺序 但是缺少按照编写/声明/行号顺序排序
Spring Security 优化鉴权注解,使用自定义鉴权注解替代@PreAuthorize
引言 众所周知,在SpringSecurity的鉴权体系中,最常用的就是使用 @PreAuthorize 进行鉴权: @PreAuthorize 注解本身使用SpEL表达式进行解析,其中hasAuth
使用布谷鸟过滤器对 logback 日志一定周期内重复异常堆栈打印进行压缩过滤
前因 前阵子日子线上有个bug,但是由于触发过于频繁导致日志打印全是这个bug的堆栈,全是重复堆栈内容日志一下变得不友好起来,搜索有没有什么优化办法。 偶然看到近期业务大量突增微服务性能优化总结-2.
一些Java 泛型使用经验,使用泛型优化接口设计
1.方法泛型与强转 泛型最常见的用法是为容器添加类型变量,让编译器提供类型检查和自动类型转换 比如常见的返回值包装类: 方法泛型 因为这是一个非常常用的类,所以我们经常添加 静态工厂方法 和 链式调用
使用 Cglib 和 Objenesis 实现 java 对象懒加载
java懒加载,懒加载bean,懒加载springBean 使用懒加载容器包裹对象 使用字节码懒加载,就必须使用动态代理来完成懒加载了,这里使用Cglib来实现Enhancer创建动态代理
利用泛型封装一个非常方便设置短信模板的短信服务
前段时间,系统接入了阿里云短信,需要封装一个短信服务,并且因为阿里云的短信模板是需要审核的,这就需要封装的短信服务能够提供一个好的模板兼容性
通过引擎插件替换 Camunda 执行命令及 SQL ,解决 Camunda Comment FullMessages 乱码以及 Messages 长度问题
环境: Spring-boot 嵌入式开发 、Canmunda版本7.16.0 、在数据库表`act_hi_comment`里`FULL_MSG_`使用`longBlob`类型从而容易导致乱码
通过注解一次搞定枚举类在spring中的3种序列化的方式
只需一个注解,即可配置好让枚举在mybatis存储到数据库时采用数字id,json序列化传给前端时采用字符串,在controller的RequestParam 采用id反序列化为枚举,全自动配置
利用Spring 自带类写一个自动初始化数据库的工具组件
写了多个组件,如日志组件、权限组件等等,每个组件都各自需要几个表,这个时候往往一个新项目建立后,都需要引用几个组件,每次都要翻来翻去找sql文件建表,为了简化这个过程,决定在通用组件内添加一个统一的自
实体类字段为接口的json序列化报错的解决方法 以 SpringSecurity UserDetails实现类 GrantedAuthority 为例
当然我们也可以直接使用实现类如`SimpleGrantedAuthority`。但实际上`SimpleGrantedAuthority`本身也会引起同样的报错,这是因为`SimpleGrantedAu
Spring Validation 校验集合新方法,竟然在泛型参数里加注解??
来源: Baeldung: 验证 Spring 控制器中的列表 以往使用 @Validated、@Valid 验证List 方法要么是创建一个符合javaBean规定的自定义的List实现,要么是注入
TypeTools java反射获取类、接口、lanmda匿名内部类、方法引用的泛型真实类型的工具类
TypeTools 一个非常厉害的库,可以解析大部分的泛型信息了,包括很难取到的lambda表达式匿名内部类的泛型结果 官方文档👉Github - TypeTools 非常轻量,整个依赖只有两个jav
IDEA debug 小技巧,任意时刻执行任意实例的任意代码
今天调试的时候,发现了一个令我震惊的功能,不知道是不是我孤陋寡闻了,但是这个功能我觉得实在是太变态了 众所周知,在Idea进入断点的时候,可以加载内存中类实例 这里可以搜索到我们想要找的实例对象 比如
"wix-embedded-mysql"使用本地内嵌Mysql进行springboot测试
测试的时候经常使用H2内存数据库但是H2数据库不支持一些mysql的操作,往往需要修改一些sql才能跑通测试。 使用内嵌mysql就可以解决这个问题,用起来跟H2没区别(完全没感到启动速度有差别)
判断一个对象是不是mybatis的mapper代理实例,反射取出其继承的接口的泛型信息
核心判断方法是 mybatis 生成动态代理的方法在org.apache.ibatis.binding.MapperProxyFactory#newInstance() 主要是通过Proxy.newP
Spring Controller uri参数使用enum枚举类接收,自定义转换方式无视大小写
controller层接收枚举参数的时候,使用的是`org.springframework.core.convert.support.StringToEnumConverterFactory` 最终调
下一页