Java编码技巧
这个专栏是为了记录工作中的小点子,好记性不如烂笔头,欢迎大家收藏
臣妾写不来啊
程序猿
展开
-
使用netty4.1.42.java17环境下遇到:PlatformDependent0$6 cannot access class jdk.internal.misc.Unsafe (in modu
--add-opens`参数告诉Java运行时,将`java.base`模块中的`jdk.internal.misc`包以及其中的所有成员,对所有未命名模块(`ALL-UNNAMED`)打开。在Java 9及以上版本中,对于一些被认为是内部API的模块、包或类,如果其他模块直接访问它们,会导致“非法访问”警告或错误。这样做的目的是在迁移到新的Java版本时,可以及时发现代码中存在的非法访问情况,但仍然允许应用程序正常运行。这个命令是用来配置Java 9及以上版本的运行时行为的。原创 2024-05-08 15:17:08 · 341 阅读 · 0 评论 -
如何查看打包后的jar包启动方法main方法
有时候我们在引用一个jar包的时候,想查看一个jar包的结构,这时候查看启动类就比较重要,因为一些关键配置是在启动类上的,这里教大家如何查看这个启动类(springboot项目)原创 2024-05-08 11:10:14 · 234 阅读 · 0 评论 -
Intellij IDEA 运行时报 Command line is too long 解决方法
原创出处 https://www.iocoder.cn/Fight/Intellij-IDEA-Indicates-that-Command-Line-is-too-long/原创 2024-05-06 14:24:12 · 187 阅读 · 0 评论 -
Java17的stream流里toList和.collect(Collectors.toList())有什么不同
是 Java 中的一个类,用于创建不可修改的列表。它实际上是通过方法创建的。一旦列表被创建为不可修改的,就无法对其进行添加、删除或修改元素的操作。这种列表对于保护数据不被意外修改或者共享数据而不希望被修改很有用。当你想要确保某个列表在传递给其他代码时不会被修改时,可以使用来包装你的列表。结论:如果你想在stream后对list进行修改操作,那么就用.collect(Collectors.toList());,如果不想结果被修改操作,那么就直接使用.toList();原创 2024-04-29 17:00:12 · 524 阅读 · 2 评论 -
滑块验证码破解----Java使用opencv后端破解滑块验证
你下载的是什么版本的,这里的数字就是多少,比如我下载4.5.3版本那么这里就是453,下载4.9.0这里就显示490。这个滑块识别的方法比网上的方法好用多了,识别正确率很高,3次之内必正确。使用技术:Java + SpringBoot+openCV。这个文件是外部库,在使用opencv的时候需要用到这个文件。这里的pom依赖需要根据你下载的opencv版本进行调整。如果还有任何不懂,可在评论区或者私信问我,欢迎各位一起探讨。下载这个windows版本的安装包。按顺序操作即可引入.原创 2024-04-28 14:31:51 · 494 阅读 · 1 评论 -
‘nvm‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。(NVM先前已安装过)
大家可以再试一下,idea右键以管理员身份启动,我就这样解决的。除了网上说的解决办法:1.更新nvm版本。原创 2024-04-19 23:25:25 · 149 阅读 · 0 评论 -
Java之如何在图片上写上文字
在本文中,我们将探讨如何利用Java在图片上添加文字。有时候,我们需要在图片中注明一些重要信息,比如添加水印、标注图片内容等。Java提供了强大的图形处理能力,使得在图片上添加文字变得非常简单。在接下来的内容中,我们将介绍如何使用Java的图形库来实现这一功能,并提供相应的示例代码和详细解释。我们从读取图片、创建绘图对象、设置字体和颜色、添加文字,一直到保存修改后的图片,逐步介绍了实现这一功能的关键步骤。在这个示例中,我们首先读取了原始的图片文件,然后创建了一个。对象,用于在图片上绘制。原创 2024-04-19 09:42:00 · 264 阅读 · 0 评论 -
离谱bug记录-----保存接口没做幂等性处理导致下游数据
最近遇到一个bug,系统是21年开发的,内部系统,在使用过程中发现bug,由于以前的开发人员都有事,然后就是bug分配到我来修改,跟测试人员测了很久才最终定位到bug,原因就是前端页面设计问题,导致保存接口被操作人员偶尔快速点击,并发调用导致数据存了两份,导致下游的数据不对业务不通,解决办法就是在前端限制保存按钮的操作间隔,不能在新增的时候快速点击,必须等到保存成功后才能继续点击下一步。原创 2024-04-16 14:30:58 · 89 阅读 · 0 评论 -
@PostConstruct使用场景简介
是一个 Java EE 标准中的注解,也被广泛应用于 Spring 框架中。它用于标记一个方法,在对象被创建后,且依赖注入完成后立即执行。通常用于执行一些初始化操作。当一个类使用了注解标记一个方法时,这个方法会在依赖注入完成后立即执行,以便执行一些初始化操作、资源分配或其他必要的设置。例如,在一个 Spring 组件中,你可以使用注解标记一个方法,以确保在依赖注入完成后执行某些初始化代码,比如初始化连接、加载配置等操作。原创 2024-04-16 14:27:39 · 267 阅读 · 0 评论 -
java实现图片合成,图片嵌套,背景图片添加二维码
代码仓库:picture-synthesis: 使用Java操作图片合成功能,提供底图和二维码可生成对应的邀请码海报我借鉴的一个小demo,包含生成二维码,操作多张图片合成,保存图片到本地,合成效果如下:入口:原创 2024-04-12 14:15:13 · 172 阅读 · 0 评论 -
在mybatis中使用@变量报错 Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: “
2.或者在mapper上打注解 @InterceptorIgnore(tenantLine = "true")起因是我写了一个复杂的sql,sql中使用了@这种自定义的变量,在查询sql的时候直接报错了,1.是升级mybatisplus版本到v3.5.1及以上,原创 2024-03-26 16:43:39 · 304 阅读 · 0 评论 -
Java中的拦截器是干什么的,有什么作用,怎么用,拦截器中注入bean失败怎么办?
在Java中,拦截器(Interceptor)通常指的是在Spring框架中用于拦截请求的一种机制。在Spring框架中,拦截器是一种AOP(面向切面编程)的实现,它可以在方法执行前、执行后、抛出异常时等不同的时间点执行一些操作。它们提供了一种灵活的方式来对请求进行预处理和后处理,而不需要修改实际的业务逻辑代码。总的来说,拦截器是Spring框架中非常有用的一部分,它提供了一种可插拔的机制,可以在不同的阶段对请求进行干预和处理。这个接口定义了在请求处理的不同阶段执行的方法,包括。(在请求处理之前调用)、原创 2024-01-30 16:41:49 · 435 阅读 · 1 评论 -
Spring体系下解决请求统一加解密之ResponseBodyAdvice和RequestBodyAdvice
【同样RequestBodyAdvice也是在 sping 新加入的一个接口,它可以使用在 @RequestBody 或 HttpEntity 修饰的参数读取之前进行参数的处理,比如进行参数的解密】 通俗来讲就是在数据返回前端之前可以通过这个ResponseBodyAdvice接口来将响应中的数据进行操作后再返回前端。因此可以在这里进行检查方法是否有我们自己定义的注解,比如我的代码就是检查了方法参数上有没有EncryptBody这个注解,有的话就会去进行beforeBodyWrite方法的执行。原创 2024-02-26 17:41:44 · 732 阅读 · 0 评论 -
做登陆日志根据Ip查询具体位置信息
第二种是使用一个本地的数据库包,将ip拿去进行解析,这样的好处是相对稳定,不像调用别人的在线接口需要担心接口的稳定性问题。最近做到这个功能,具体思路就是先提取ip,然后根据IP去调用接口判断这个IP的具体信息,实现起来有两种方式,,可以去调用这个接口查询;原创 2023-11-06 13:25:43 · 46 阅读 · 1 评论 -
Java中的Optional类型:优雅处理空值
Optional是一个容器类,它可以包含null或非null的值。它的主要目标是通过明确表示一个值可能为空来避免空指针异常。Optional类提供了一些方法来判断Optional是否包含值、获取Optional的值以及处理Optional为空的情况。Optional类型为Java开发者提供了一种优雅处理空值的方式。通过使用Optional,我们可以明确表示一个值可能为空,避免空指针异常的发生。原创 2023-11-26 22:56:44 · 1060 阅读 · 1 评论