![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
工具
文章平均质量分 86
记录开发辅助应用
烟雨忆南唐
这个作者很懒,什么都没留下…
展开
-
高效构建Java应用:Maven的使用总结
指示将项目打包为什么类型的文件,idea根据packaging值,识别maven项目类型!packaging 属性为 jar(默认值),代表普通的Java工程,打包以后是.jar结尾的文件。packaging 属性为 war,代表Java的web工程,打包以后.war结尾的文件。packaging 属性为 pom,代表不会打包,用来做继承的父工程。例如: pom.xml依赖文件:使用记事本打开set REPOSITORY_PATH=D:\repository 改成你本地仓库地址即可!原创 2024-01-22 10:42:44 · 1074 阅读 · 0 评论 -
Docker Compose的实战应用指南
Docker 是一个开放源代码的容器化平台,允许开发者将应用及其依赖打包进轻量级、可移植的容器中。原创 2024-01-18 17:37:13 · 1310 阅读 · 0 评论 -
API成批分配漏洞介绍与解决方案
批量分配:在API的业务对象或数据结构中,通常存在多个属性,攻击者通过篡改属性值的方式,达到攻击目的。比如通过设置user.is_admin和user.is_manager的值提升用户权限等级;假设某API的默认接口调用参数为{"user_name":"user","is_admin":0},而恶意攻击者修改请求参数,提交值为{"user_name":"attacker","is_admin":1},通过修改参数is_admin的值来提升为管理员权限。原创 2023-12-01 10:34:57 · 5032 阅读 · 7 评论 -
关于OpenFeign的教程详解
❝当我们自己的后端项目中 需要 调用别的项目的接口的时候,就需要通过Http客户端来调用。在实际开发当中经常会遇到这种场景,比如微服务之间调用,除了微服务之外,可能有时候会涉及到对接一些第三方接口也需要使用到 Http客户端 来调用 第三方接口。❞所有的客户端相比较,Feign更加简单一点,在Feign的实现下,我们只需创建一个接口并使用注解的方式来配置它(以前是Dao接口上面标注Mapper注解,现在是一个微服务接口上面标注一个Feign注解即可),即可完成对服务提供方的接口绑定。原创 2023-09-19 17:19:48 · 1038 阅读 · 1 评论 -
Nginx配置与使用
早期的业务都是基于单体节点部署,由于前期访问流量不大,因此单体结构也可满足需求,但随着业务增长,流量也越来越大,那么最终单台服务器受到的访问压力也会逐步增高。时间一长,单台服务器性能无法跟上业务增长,就会造成线上频繁宕机的现象发生,最终导致系统瘫痪无法继续处理用户的请求原创 2023-08-01 17:23:30 · 648 阅读 · 0 评论 -
三元表达式空指针问题
此时可以看到编译器给出的警告提示,num处会发生拆箱操作,执行程序发生空指针异常,因为三元表达式在条件为false时执行到num处进行拆箱操作,也就是Integer的intValue()方法。此时可以看到编译器给出的警告提示,num处会发生拆箱操作,执行程序发生空指针异常,因为三元表达式在条件为true时执行到num处进行拆箱操作,也就是Integer的intValue()方法。情景四:将num赋值为null,将flag赋值为true,num和10调换位置。情景五:将flag赋值为true。原创 2023-06-29 17:07:59 · 367 阅读 · 0 评论 -
总结5种常用加密算法
前言在平时的工作中,可能也在很多地方用到了加密、解密,比如:用户的密码不能明文存储,要存储加密后的密文用户的银行卡号、身份证号之类的敏感数据,需要加密传输还有一些重要接口,比如支付,客户端要对请求生成一个签名,服务端要对签名进行验证……那么上面提到的这些能力,都可以利用哪些加密算法来实现呢?接着往下看。常见加密算法算法整体上可以分为,以及,可逆加密又可以分为和。不可逆算法不可逆加密的算法的加密是不可逆的,密文无法被还原成原文。散列算法,就是一种不可逆算法。原创 2023-06-26 15:45:03 · 5895 阅读 · 0 评论 -
聊一聊布隆过滤器
计数过滤器(Counting Bloom Filter)是布隆过滤器的扩展,标准 Bloom Filter 位数组的每一位扩展为一个小的计数器(Counter),在插入元素时给对应的 k (k 为哈希函数个数)个 Counter 的值分别加 1,删除元素时给对应的 k 个 Counter 的值分别减 1。元素 x 映射到位数组的第0位,第4位,第7位,元素y映射到数组的位数组的第1位,第4位,第6位。同时,哈希函数的个数也需要考量,哈希函数的个数越大,检索的速度会越慢,误判率也越小,反之,则误判率越高。原创 2023-06-26 13:46:59 · 262 阅读 · 0 评论 -
总结6种服务限流的实现方式
固定窗口算法的优点是实现简单,但是可能无法应对突发流量的情况,比如每秒允许放行100个请求,但是在0.9秒前都没有请求进来,这就造成了在0.9秒到1秒这段时间内要处理100个请求,而在1秒到1.1秒间可能会再进入100个请求,这就造成了要在0.2秒内处理200个请求,这种流量激增就可能导致后端服务出现异常。并且在每个时间段内都维护了单独的计数器,每次滑动时,都减去前一个时间块内的请求数量,并再添加一个新的时间块到末尾,当时间窗口内所有小时间块的计数器之和超过了请求阈值时,就会触发限流操作。原创 2023-06-06 18:15:45 · 791 阅读 · 0 评论 -
SpringBoot + Docker 实现一次构建到处运行
传统的虚拟机技术启动应用服务往往需要数分钟,而 Docker 容器应用,由于直接运行宿主内核,无需启动完整的操作系统,因此可以做到秒级、甚至毫秒级的启动时间。Dockerfile 的本质就是将一系列修改、安装、构建、操作的命令整合到一起,去构建一个个性化的镜像,以达到。最重要的是一致的运行环境。:指定基础镜像,项目是使用jdk8开发的项目,所以指定的基础镜像为openjdk:8-jre。搭建以及配置完成后,需要将之前构建的镜像上传至自己的Docker仓库。也可以在刚刚搭建的WebUI上可视化的查看的镜像。原创 2023-05-25 15:06:29 · 1453 阅读 · 0 评论 -
使用Eclipse 进行远程 Debug 调试
一般情况下,生产环境可以采取的手段比较单一,即通过日志的方式获取运行中的环境上下文,分析日志文件并尝试重现bug。这会带来的问题还是不少的,首先,日志的分析是一项比较耗时的工作;倘若是测试环境,还多了一项可供选择的手段——远程调试——将程序在测试环境中以debug模式启动,在本机使用Eclipse在工程中设置断点进行调试。Java自身支持调试功能,并提供了一个简单的调试工具--JDB,类似于功能强大的GDB,JDB也是一个字符界面的调试环境,并支持设置断点,支持线程线级的调试。指定了调试数据的传送方式;原创 2023-05-16 16:25:53 · 2133 阅读 · 0 评论 -
java中设计模式总结
代理模式是做方法增强的,适配器模式是把鸡包装成鸭这种用来适配接口的,桥梁模式做到了很好的解耦,装饰模式从名字上就看得出来,适合于装饰类或者说是增强类的场景,门面模式的优点是客户端不需要关心实例化过程,只要调用需要的方法即可,组合模式用于描述具有层次结构的数据,享元模式是为了在特定的场景中缓存已经创建的对象,用于提高性能。其实如果只有一个观察者类的话,接口都不用定义了,不过,通常场景下,既然用到了观察者模式,就是希望一个事件出来了,会有多个不同的类需要处理相应的信息。设定的规则都通过后,才能让用户领走奖品。原创 2023-05-06 17:25:11 · 1132 阅读 · 0 评论 -
使用 IDEA 远程 Debug 调试
好像感觉远程调试的用处也不是那么大,不能作为长期使用的调试工具。只能作为临时调试的手段。难点有几个:难保证本地代码和远程一致,而且你也很难判断是否一致通过远程调试发现了bug,但是又不能立即修复后继续调试,只能修复后部署后继续远程调试。原创 2023-04-20 17:21:39 · 1001 阅读 · 0 评论 -
Lombok同时使用@Data和@Builder的问题
在编译期阶段,当 Java 源码被抽象成语法树 (AST) 之后,Lombok 会根据⾃⼰的注解处理器动态的修改AST,增加新的代码 (节点),在这⼀切执⾏之后,再通过分析⽣成了最终的字节码 (.class) ⽂件,这就是Lombok 的执⾏原理。尽管测试类已经⽣成Setter⽅法,但是因为是在编译时期⽣成的,因此在开发的时候是没法直接调⽤Setter⽅法的,因此Lombok提供了插件机制,⽅便在开发的时候可以直接去调⽤Lombok的特性。使用@Builder注解,将会⽣成全属性的构造⽅法。原创 2023-04-04 14:31:31 · 469 阅读 · 0 评论 -
使用data-factory-core生成随机数据
平时在写测试用例的时候,免不了要写一大堆 set 方法为对象设置属性。有时候为了补全测试用例,这件事就会变得非常枯燥。于是就有了这一个测试框架原创 2023-01-12 17:13:48 · 174 阅读 · 0 评论 -
IDEA卡顿困扰: 性能优化设置
在日常使用IDEA进行开发时,可能会遇到许多卡顿的瞬间,明明机器配置也不低?为什么就会一直卡顿呢? 原来这是因为IDEA软件在安装的时候就设置了默认的内存使用上限(通常很小),这就是造成使用IDEA时卡顿的根本原因,可以通过手动调整idea内存配置参数,使得idea的性能提升原创 2023-03-03 11:49:45 · 1292 阅读 · 0 评论