- 博客(54)
- 问答 (1)
- 收藏
- 关注
原创 发布ApiFox文档供外界通过自定义域名访问
本文介绍了在API驱动开发背景下,如何通过自定义域名实现企业级接口文档的品牌化发布。针对Apifox原生域名缺乏辨识度、临时链接不安全等问题,提出结合Nginx反向代理的解决方案。具体步骤包括:通过Swagger注解定义接口、使用ApiFoxHelper插件上传文档、配置自定义域名及Nginx代理(包含完整配置示例)。该方案既保留了Apifox自动同步文档的优势,又通过企业专属域名提升专业形象,同时确保文档访问的安全性和稳定性,实现标准化、品牌化的接口文档发布。
2026-03-27 15:47:00
280
原创 反编译修改Jar包内容
本文介绍了直接修改Jar包中class文件的方法,适用于需要临时修改第三方Jar包内容但无法重新编译的场景。通过JD-GUI反编译获取源代码,在IDEA中创建相同包路径的项目,修改并重新编译生成class文件后,用WinRAR替换原Jar包中的对应文件。该方法成功将SessionErrorCodeEnum枚举的错误提示从中文改为英文,并建议操作前备份原Jar包以防意外。
2026-03-26 11:39:26
232
原创 I18N国际化Java业务枚举失效问题
摘要:本文分析了Spring国际化配置中出现的语言匹配问题。项目配置国际化后,无论请求语言是en还是zh都返回中文业务枚举。经排查发现JVM默认语言为中文,导致系统使用默认Locale兜底。解决方法包括:1)关闭系统Locale兜底配置messageSource.setFallbackToSystemLocale(false);2)创建标准命名的国际化文件messages_zh.properties和messages_en.properties,确保语言能正确匹配对应文件。最终实现了根据请求语言返回正确的国
2026-02-27 18:20:56
268
原创 VUE3学习
本文系统介绍了Vue3和Node.js的核心概念与用法。主要内容包括:1.Vue3基础:setup语法糖、ref/reactive响应式原理、v-model双向绑定、模板语法(插值、指令等);2.Vue3特性:计算属性computed、watch监听、生命周期钩子(onMounted等);3.组件开发:父子组件通信(props/emit)、插槽语法、keepAlive缓存组件;4.开发工具:Vue CLI脚手架、Node.js构建支持。通过代码示例详细说明各功能的使用场景和注意事项,帮助开发者快速掌握Vue
2025-11-13 10:05:12
914
1
原创 布隆过滤器的原理
当要查询一个元素是否属于集合时,同样将这个元素传递给多个哈希函数从而得到多个哈希值,然后检查位数组中对应位置的值,如果对应位置的值都为1,那么可以判断元素可能存在集合中,如果存在一个位置为0,那么元素一定不存在集合中。布隆过滤器需要使用多个哈希函数。当一个元素要被插入时,它会被传递给多个哈希函数,得到多个哈希值,然后将位数组中对应的位置的值设置为1。这个位数组的长度取决于预计的元素数量和可接受的错误率。布隆过滤器使用一个位数组,初始化的时候全部为0。
2024-04-07 21:00:02
297
原创 Redis过期key的删除及淘汰机制
因为当如果有大量key同时过期,那么Redis都去删除这些key的话,那么需要消耗很大的性能,那么对于我们数据缓存的的性能就有影响,所以Redis有两种删除过期key的策略。如果查询了一个过期的key,Redis会看这个key的生存时间是否到了,如果到了那么Redis会把这个key删除,返回一个空值。Redis每隔一段时间就会去查看设置了过期时间的key,并且在100ms的间隔中默认查看三个key。可以是一个哈希表,其中键是数据项,值是对应的访问频率。,堆顶元素是访问频率最低的数据项。
2023-11-20 20:32:48
326
原创 RabbitMq
MQServer把消息推送给消费者后,消费者开始消费,消费完成后需要把结果给MQServer应答一下,消费结果有两种情况:失败、成功。
2023-11-20 20:32:18
1004
3
原创 Reids集群
也就是Redis搭建集群后,通过划分两个角色,一个主服务器一个从服务器主服务器负责写操作从服务器负责读操作所以实现了读写分离但是即使redis自身有持久化的机制,但是一旦磁盘发生损坏,数据又会丢失所以需要多个从服务器进行读操作1.2.主从模式它们之间的数据是怎么实现一个同步的?(1)全量同步:在节点初始化的时候进行一个数据的全部同步流程:1.因为在从服务器配置文件配置了主服务器,所以从服务器启动的时候做完认证就开始同步2.给从服务器发送一个同步的命令到主服务器。
2023-11-15 11:55:13
1016
原创 Redis的持久化操作
每次会把对redis数据库的写命令写入到一个文件中,所以它的数据安全,每次都记录了写操作,但是正因为如此IO次数多,速度就慢。:做快照需要一定的时间,在这个时间段中,如果客户端发送了命令过来,redis不会处理这个命令。RDB和AOF都有着自己的特点,它们之间可以相辅相成,两个一起使用的时候,安全级别是最高的,数据可能会丢失(因为快照是以时间点拍摄的,所以在某个时间段的数据可能没有做快照)因为每一个写命令都会存到一个文件中,所以文件中的数据就会很多,存在很多无用数据,所以就会保留下数据需要的最小集合。
2023-11-14 19:22:26
298
原创 JWT的登录认证与自校验原理分析
JWT是一个含签名并且携带用户相关信息的加密串,用户输入相关信息进行登录的时候,如果信息验证成功,会生成一个JWT(Token令牌),并且将这个token返回给前端保存到本地,当进行其他的请求api的时候,将这个Token带给后端,并且拦截器对请求进行拦截,验证这个Token,如果验证Token无误则放行这个请求,进行相应的业务逻辑处理,显示数据;有误则返回错误信息,跳转登陆界面。
2023-10-25 23:30:41
647
原创 将本地的项目上传到Gitee
git commit -m '本次提交的说明'(说明信息为必填项,最好是信息有意义,便于后期理解,相当于注释本次提交的说明)
2023-10-19 21:32:12
349
原创 JDBC技术
前面的操作,不管是通过DOS还是navicat操作数据库,都是特别麻烦的,特别频繁的复制型的操作如果使用java代码(软件)去操作数据库,则只需要触发一个指令,内部即可联动性的循环操作SQL语句什么是JDBC?JDBC其实就是通过java代码操作数据库的一种规范和标准只需要数据库产品提供相关的驱动,java代码就可以连接上数据库,从而通过java代码操作数据库3.使用JDBC先将驱动放入项目中,添加到库,即可使用驱动。
2023-10-19 15:07:27
146
原创 Mysql关联查询
事务是原子性操作(不可分割的整体);处在事务中的多个SQL语句,要么都成功,则提交;要么都失败,则回滚视图就是一张虚拟表;从原表中抽取出来的虚拟表;关于虚拟表的操作,也会联动的改变原表好处:1.屏蔽了原表的重要数据,提升安全性2.当需要从多表中提取数据时,使用视图可以提升性能缺点:1.单表的操作,会变得复杂(增删改的操作要联动原表)2.复杂的视图是无法被修改的 例如:聚合函数形成的视图。
2023-10-16 20:59:52
268
原创 MySQL基础
存储和管理数据的仓库;长期存储在计算机中的有组织、有结构的数据的集合;通过库中的多张表进行分类存储用于建立、维护、和管理数据的一种产品。
2023-10-16 20:59:37
173
原创 原生Ajax(JavaScrip的Ajax)
validate校验插件,主要用于表单中提交时,做的提示校验规则;也就是不满足规则条件时,会给我们提供规则提示,意味着不能提交了,直到满足了规则条件才能提交。
2023-10-14 14:49:21
251
原创 Jquery的Ajax
Ajax异步的JS和XML的组合;也就是需要在JS中发异步请求到服务器(XML操作被JQuery封装)/在前端中通过Ajax可以异步发送请求交给服务端处理,提升用户体验异步多线程的执行;客户端与服务器可以同时执行(同步:服务端等客户端做完处理后,服务端发送请求然后客户端做)(异步:客户端边做的时候边发请求,服务端进行处理)用途:可用于页面的局部刷新;在不需要刷新整个页面的情况下,可使用ajax(提高用户的体验感与界面友好)应用场景:注册功能、购物车、地图搜索JSON数据本质上就是带格式的字符串;
2023-10-14 14:49:02
181
原创 JQuery扩展
表单过滤,往往是通过type属性获取元素的jquery对象 例如,:text,就拿到了type为text的元素。JQuery中需要通过$符号去获取JQuery对象,但往往$在其他框架中也会用到,这时可能会产生冲突;简单过滤包含::fist, :last, :eq(), :not(),:even, :odd...遍历方法:each(function(i, obj){}) 参数1:下标 参数2:元素对象。在JQuery中的遍历,我们可以理解为去查找指定规则的元素或子元素或父元素。
2023-10-12 19:29:47
143
原创 JQuery基础
概述:JQuery就是对JS封装的代码库;设计宗旨:写得少,做的多JQuery能做什么:JS的封装、CSS封装、事件、动画、Ajax 等等使用方式:拿JQuery对象( $("选择器") ),操作各种资源//$("div").animate({width:"150px"}) //设置宽度/* $("div").animate( //接多个样式属性})})*/$("div").animate( //接多个样式属性height:"toggle", //显示与隐藏})})
2023-10-11 20:04:12
283
原创 BOM操作
概述:以键值对方式存储在客户端的文件中;格式:key=value;key2=value2...弊端:容易被篡改数据;可能会被禁用cookie;相对使用较少,往往刷新一直可用,回退和前进按钮,必须要有超链接跳转才能使用。循环定时器的基本使用,设置定时器和清除定时器。比一次性定时器更常用。概述:history主要讲回退,前进和刷新功能的按钮的应用。功能:设置Cookie;应用场景:记录登录账户,浏览记录,购物车信息,换肤功能等。好处:操作简单,在web开发中可减轻服务器压力。用于显示浏览器访问的相关资源信息。
2023-10-11 20:03:31
220
原创 JS的DOM
在JS中一切都是属于window,包括全局变量,函数,DOM,console等等都是属于window的。在前面编写的DOM中,没有写window,但默认有;概述:BOM是浏览器对象模型,有了BOM(window对象),JS则有能力和浏览器交互。概述:DOM与事件操作的结合,也就是事件触发后,再通过DOM进行元素的相关操作。概述:冒泡与捕获,主要讲解多个控件捆绑同一个事件,然后触发的优先顺序问题;概述:事件监听,就是通过DOM得到元素对象后,调用监听方法,绑定事件。操作元素,就是创建或删除控件的相关操作;
2023-10-04 11:24:01
194
原创 CSS与JS
概述:解释型的脚本语言,就是依附在浏览器中,用于解释HTML的触发机制;例如,点击控件触发如果把HTML看成房子结构,CSS看成装修效果,那么JS相当于智能家居JS也是一种弱类型语言(java是强类型),在定义时都是var类型。
2023-09-27 20:39:09
454
原创 HTML与CSS
CSS描述:层叠样式表,多种样式效果可以层叠到一个标签中;如果样式效果有冲突,则选择优先级高的;如果没有冲突则样式效果都组合到该标签中与HTML区别:HTML看成是一栋房子的基础结构;那么CSS就是房子的装修作用:美化页面效果;内容与表现分离,达到复用性效果书写格式:通过选择器进行CSS样式设计: 例如,选择器{属性:值}
2023-09-26 19:37:25
390
原创 HTML的相关概述
网站中的页面,通过HTML格式的标签进行开发的,以htm或html结尾的格式文档HTML:超文本标记语言超文本:图文并茂,且通过超链接进行跳转标记语言:通过标签进行开发的语言。
2023-09-25 10:26:59
426
原创 Java中JDK8新特性
DateTimeFormatter格式化日期类,类似于Date中的SimpleDateFormat。前面的Date只是在单线程中使用的日期类,在多线程中需要使用本地日期;匿名内部类往往常用于接口实现多态的方式中,所以lambda表达式语法也类似,需要有接口引用。函数式接口也是lambda表达式的应用场景,只不过接口有特殊定义:接口中的抽象方法只有一个。概述:类似集合用法,是一个容器的应用;说明:Stream调用操作方法,返回的依然是Stream;链式编程:可以将Stream方法连续性的调用。
2023-09-18 19:54:14
228
原创 java中的反射与设计模式
反射其实就是类对象,类加载的产物;将类加载到内存中,会产生类对象(class文件);有了类对象,即可得到所有类资源的信息: 类,方法,属性,构造器,包,父类,接口...即通过反射得到类对象,通过类对象可以得到类的实例对象,属性对象,方法对象,在反射中 对类的资源的操作都通过资源的对象进行操作为什么要用反射?通过反射,可以在编译时不需要知道类的名字,从而在程序运行时根据需要动态的确定要使用的类,并且动态创建类的实例对象、操作属性对象(甚至是私有的)、方法对象,使得程序更加的灵活、维护性更强。
2023-09-15 20:19:37
419
原创 Java中的File与网络编程
后端接收数据,调取数据库的数据,匹配用户信息,如果用户名相同,返回已注册;IP分为IPV4和IPBV6两种,ipv6是在IPV4的基础上进行扩充,所表示的ip地址更宽泛,但是现在依然还是使用IPV4。获取文件名,获取路径,是否可读,是否可写;客户端--前端页面 服务器端---web后端 数据库----文本文件(Properties)服务器:接收到字符串,拿到ID和密码;tcp:建立连接,安全可靠的协议,效率低--------案例:打电话。udp:无连接协议,不安全的协议,效率高-------案例:发短信。
2023-09-11 20:11:09
601
原创 java中的线程高级
同步锁(同步代码块和同步方法);相比同步锁,重入锁的执行性能会更高,因为重入锁是手动进行加锁和释放锁,灵活性更强;但是重入锁是手动处理锁,容易出现死锁,需要谨慎使用。应用:在使用上这些锁没有区别,锁的注意事项也是一致的案例:模拟List的安全隐患问题,以及处理隐患。//模拟List集合,使用重入锁处理---ReentrantLock//重入锁int index;//记录下标,从0开始try {//获取锁对象index++;} finally { //无论如何都会释放//释放锁对象。
2023-08-30 20:28:34
151
原创 java中的线程安全
加了锁之后,有一个线程进到锁里面没有出来,导致锁资源没有得到释放,其他线程一直等待锁资源的释放,这样就导致了死锁的产生同步代码块和同步方法都是自动释放锁资源,所以不容易出现死锁;如果需要演示死锁案例;在同步锁中需要进行锁嵌套;注意:此处只是为了测试死锁,才进行的锁嵌套;以后使用时尽量避免锁嵌套(避免死锁)线程池:就是装线程的容器,预先在容器中创建指定个数的线程对象;当用户需要时,直接俄从容器中获取;用完了,再回收到线程池中(用完了放回去之前创建线程的方式:创建线程对象后,执行完毕则销毁线程对象;
2023-08-26 11:00:51
3285
原创 java中的静态相关知识、内存存储分析
java的内存存储总共分为5大区域堆、栈、方法区、本地方法区、寄存器区其中本地方法区(存第三方语言-C/C++)和寄存器区(多线程资源)不用区分析,没法跟踪这两个区域重点分析:堆,栈,方法区堆:存new对象,成员属性,常量池(放字符串常量,之前方法区,现在放堆区-性能考虑,但沿用了方法区特点)栈:存局部变量方法区:class资源,static资源;特点:优先于对象的加载,且相同资源只维护一份接下来,使用简单的面向对象案例,说明内存的执行过程1.内存分析内存存储的5大区域;
2023-08-21 12:50:20
1141
2
原创 java中面向对象三大特性:封装、继承、多态、抽象、引用类型转换
一个类如果想要具备另外一个类的属性和方法,那么可以通过继承,实现得到父类的资源Object:所有类的父类重合点(特征和行为接近)越多,越接近直接父类重合点越少,越接近Object类从字面意思可以知道多态就是多种形态的表现形式。多态的前提其实就是继承或接口,正是因为有了继承、接口,子类继承父类然后去重写父类的方法、实现类实现接口然后重写接口的方法才体现出多态。如:一个动物有吃的方法,而狗继承了动物类,重写吃方法后表现为吃骨头而猫继承了动物类,重写吃方法后表现为吃猫粮。
2023-08-18 09:03:27
829
1
原创 java中的排序与二维数组
假定第一个元素最小,然后与后面的元素依此比较,如果后面的元素的值比第一个元素还小,那么让他们的值进行交换,经过一轮比较之后第一个元素的值是最小的,然后从第二个开始比较第二个后面的那些元素。二维数组中,行是固定的,但是列可以不规则;不规则列相对用得特别少,因为赋值和取值较麻烦,可读性也会更差。概述:一维数组的一维数组,也就是可以看成一维数组的元素又是一维数组。二维数组的定义,可以看成是行长度和列长度的空间定义。其余元素为它上一个元素加它上一个元素左侧元素的和。第一列为1 每一行的最后一个元素为1。
2023-08-14 20:24:07
806
空空如也
Android studio没有xml预览视图了
2022-11-14
昨天都好好的jsp,今天就404
2022-11-21
jsp运行时出现404错误
2022-11-21
android studio中显示不出预览视图了
2022-11-14
判断是否为素数c语言
2022-02-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅