
技术博客
文章平均质量分 71
开发技术分享
开发者导航
开发者导航网(codernav.com),欢迎您的访问。程序员请依次进入分类:开发者导航 > 进阶导航 > 编程导航。收录的网站有:AI辅助代码工具、免费源码、私活平台、编程手册、开发教程、技术博客、技术资讯等。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Redis 常用的场景有哪些?
Redis是一个高性能的键值对数据库,常用于缓存、会话存储、计数器、实时排行榜、消息队列和发布/订阅系统。作为缓存,它能减轻数据库压力;在会话存储中实现多服务器共享;提供原子操作进行高效计数;通过有序集合实现实时排序;利用列表结构支持异步任务处理;并通过发布/订阅模式实现实时通信。这些特性使Redis成为解决高并发、实时性需求的理想选择。原创 2025-09-07 18:27:42 · 601 阅读 · 0 评论 -
maven项目中Jar包冲突的原理
大部分公司的大多数项目都会有一些Jar包冲突问题,但却没有造成运行时的问题,这是因为很多依赖传递的Jar包,不管是2.0版本,还是2.5版本,都可以正常运行。这是因为Y本来依赖的是2.5版本,但是因为Jar包冲突Maven选择了2.0版本,2.0版本中又没有这个新增的类或方法,导致程序出错。如果Y包中用了Z包2.5版本中新增的类或方法(2.0版本没有的)时,当项目启动后,程序运行到这段逻辑的时候,系统就会报。根据前面讲的依赖传递的最短路径优先原则,很容易判断出项目实际依赖的应该是2.0版本。原创 2024-02-04 20:11:12 · 306 阅读 · 0 评论 -
idea条件断点如何使用?
条件断点,顾名思义,就是满足条件时进入断点。这应该是每个后端开发者必须掌握的一个技巧。多用于遍历比较大的 List 或 Map 对象时,譬如有 2000个Person对象,你不可能每个对象都挨个走一遍,你可能只想在 person.url = 'jiagou1216.com' 的时候让代码停下来。这时就可以使用条件断点了,举个简单的例子:当i=10时进入断点 1 2 3 4 5 6 7 8 9 10 11原创 2020-05-24 12:27:01 · 934 阅读 · 0 评论 -
开发者导航:hutool工具中FileUtil里面walkFiles()使用实例
hutool是一个小而全的Java开发利器,一些开发中经常用到的方法这里面基本上都已经有了。作为一个开发者,我们需要做的就是不断的提高使用它的熟练度,从而提高开发效率,节约时间去做更有意义的事(摸鱼)。原创 2024-03-23 16:20:14 · 689 阅读 · 0 评论 -
idea断点调试写求值表达式
在一堆单步跟踪的按钮旁边,有一个不太显眼的按钮,这个按钮就是 “求值表达式”。我们在调试的时候会非常有用,可以查看某个变量的值,也可以计算某个表达式的值,甚至还可以写一串代码并求值,分别对应两种不同的模式:Expression Mode:表达式模式Code Fragment Mode:代码片段模式这两个模式分别类似于 Eclipse 里面的 Expression View 和 Display View。在 Display View 里也可以编写一段代码来执行,的确非常强大,但是还原创 2020-05-24 12:23:39 · 2364 阅读 · 0 评论 -
使用hutool批量修改目录及其子目录中文件名中的指定字符
作为一个开发者,我们需要做的就是不断的提高使用它的熟练度,从而提高开发效率,节约时间去做更有意义的事(摸鱼)。我查了下hutool的文档,好像FileUtil中提供的批量处理的方法都是只处理文件,不处理文件夹的。3、修改文件名指定字符的操作要从最里面的文件夹开始,若先处理外面的文件夹,名字变了,里面的文件就找不到路径了。3、注意递归的退出条件,否则你会发现你的硬盘里多了无数个空文件夹(别问我是怎么知道的)1、删除某个目录及其子目录下所有文件的文件名中包含的“新建”、“测试”等字符。原创 2024-03-23 15:49:22 · 1628 阅读 · 0 评论 -
IE浏览器:SCRIPT5007: 属性“query”的值为 null、未定义或不是 Function 对象
我们的WEB系统技术栈比较老,前端用的还是JSP页面。之前不知道,有个地市的生产环境只能用IE浏览器,查看了下他的浏览器版本是IE11,我在自己电脑上测试用的edge浏览器的IE模式。于是进入到query()方法内,一开始也没有发现啥问题,直到想起来const是ES6引入的新关键词,会不是是IE这种老东西不支持呢?IE浏览器不支持const关键词,有时候也不要随便轻信IDE的建议。按照提示找到报错代码行,也就是下图中的查询按钮,没有看出有什么问题。自己测试是没问题的,但是放到IE11上面就有问题了。原创 2024-04-09 09:50:23 · 944 阅读 · 0 评论 -
5分钟改造MySQL使其支持存储emoji等表情符号
5分钟改造MySQL使其支持存储emoji等表情符号甲方爸爸的新需求:客户端需要在评论中使用emoji函数。mysql5.5以前,UTF-8编码只支持1-3字节;MySQL5.5后,它可以支持4字节的UTF编码utf8mb4,一个字符可以支持更多的字符集和更多的表情符号。UTF8MB4与UTF8兼容,可以表示比UTF8更多的字符,是UTF8字符集的超集。所以现在一些新的需求,比如IOS中的emoji,将MySQL数据库的字符集设置为utf8mb4。问题背景:Caused by: ja原创 2020-05-24 12:28:25 · 645 阅读 · 0 评论 -
架构师小跟班:如何高效又安全的清理Linux服务器上的缓存?
操作服务器上的生产环境,一定要慎之又慎,安全第一,优化第二!一些基本原理说到清理内存,那么不得不提到/proc这一个虚拟文件系统,这里面的数据和文件都是内存中的实时数据,很多参数的获取都可以从下面相应的文件中得到,比如查看某一进程占用的内存大小和各项参数,cpu和主板的详细信息,显卡的参数等。相应的关于内存的管理方式是在/proc/sys/vm/drop_chches文件中,一定要注意...原创 2019-07-23 16:57:45 · 157 阅读 · 0 评论 -
架构师小跟班:推荐一款Java在线诊断工具,arthas入门及使用教程
安装官方网站:https://alibaba.github.io/arthas/index.html一、下载arthas-boot.jar,然后用java -jar的方式启动:wget https://alibaba.github.io/arthas/arthas-boot.jar启动程序:java -jar arthas-boot.jar打印帮助信息:java...原创 2019-07-23 17:52:30 · 174 阅读 · 0 评论 -
开发者导航:Fiddler Everywhere抓包工具全面指南(保姆级教程)
Fiddler 是一个流行的开源网络调试代理工具,主要用于检查、监控和调试HTTP流量。它可以捕获来自浏览器、应用程序和服务器之间的HTTP请求和响应,并提供详细的信息和统计数据。Fiddler可以帮助开发人员诊断和解决网站或应用程序中的性能问题、安全漏洞和其他网络通信问题。通过Fiddler,用户可以查看请求和响应的头部信息、内容、Cookie、缓存等,也可以模拟不同的网络条件进行测试。原创 2024-03-13 18:03:22 · 19815 阅读 · 5 评论 -
Java开发环境系列:通过命令备份MySQL表结构和数据
有人会说,明明可以使用navicat一键导出脚本,为什么还要这么麻烦呢?呵呵,太天真!比如某些政府项目,服务器权限给你限制的死死地,各种VPN、跳板机、端口屏蔽、防火墙让你一身本领无从下手。能让你远程敲命令就不错了。命令行下具体用法mysqldump -u用戶名 -p密码 -d 数据库名 表名 > 脚本名;导出整个数据库结构和数据mysqldump -h localhost ...原创 2019-08-06 16:40:04 · 513 阅读 · 0 评论 -
6种限流方法之服务端令牌算法(结合guava工具包)
令牌算法在令牌桶算法中有一个程序以某种恒定的速度生成令牌,并存入令牌桶中。每个请求必须先获取令牌才能执行,请求如果没有获取到令牌,可以选择等待,也可以放弃执行,如下图所示:我们可以使用 Google 开源的 guava 包,很方便的实现令牌桶算法,首先在 pom.xml 添加 guava 引用,配置如下: 1 2 3 4 5 6 <!--https://mvnrepository.com/artifact/com.g.原创 2020-05-24 12:30:02 · 794 阅读 · 0 评论 -
Java使用ganymed工具包执行LINUX命令教程
了解更多开发技巧,请访问,架构师小跟班官网:https://www.jiagou1216.compackage com.bootdo;import ch.ethz.ssh2.Connection;import ch.ethz.ssh2.Session;import ch.ethz.ssh2.StreamGobbler;import java.io.BufferedReader;...原创 2020-01-13 18:26:47 · 469 阅读 · 1 评论 -
使用actuator优雅地停止SpringBoot应用
优雅如何定义?简而言之,就是对应用进程发送停止指令之后,能够保证正在执行的业务操作不受影响,可以继续完成已有请求的处理,但是停止处理新来的请求。在 Spring Boot 2.3及以后版本中增加了新特性:优雅停止,目前 Spring Boot 内置的四个嵌入式 Web 服务器(Jetty、Reactor Netty、Tomcat 和 Undertow)以及反应式和基于Servlet的Web应用程序都支持优雅停止。Spring Boot 2.3 及以上版本优雅停止首先创建一个 Spring B原创 2020-05-26 13:41:42 · 3058 阅读 · 3 评论 -
IDEA断点调试之设置异常断点
设置异常断点后,在程序中出现需要拦截的异常时,会自动定位到出现异常的那一行。方法:先点击 view breakpoints,之后点击 + 号添加异常断点,我们先试试添加空指针异常,NullPointerException。Debug启动项目,当出现空指针异常时,会自动跳到抛出空指针异常的行数,省的我们再去定位问题,非常方便。 ...原创 2020-05-25 14:46:17 · 8130 阅读 · 1 评论 -
IDEA设置自动导包删除多余包引入(import)
开发时很多时候需要复制粘贴一段段代码,但是复制过来的代码没有自动导入(import)依赖包,每次还要一个个手动导入,太麻烦了。而且有时候我们仅仅是为了测试某个功能才引入了某个包,但是之后不用了,import语句却没有自动删除,在idea中就展现出一行行“波浪线”提醒,贼难受。idea提供了非常友好的自动化功能。如何配置呢?解释:Insert imports on pas...原创 2020-05-29 20:53:41 · 4757 阅读 · 0 评论 -
6种限流方法之服务端时间窗口算法(结合redis)
时间窗口算法又名滑动时间算法,所谓的滑动时间算法指的是以当前时间为截止时间,往前取一定的时间,比如取60s的时间,在这60s时间内最大的访问数为100。此时算法的执行逻辑为,先清除这60s 之前的所有请求记录,再计算当前集合内请求数是否大于设定的最大请求数100,如果大于100则执行限流拒绝策略,否则插入本次请求记录并返回可以正常执行的标识给客户端。滑动时间窗口如下图所示:其中每一个小格子代表10s,被红色虚线包围的时间段则为需要判断的时间间隔,比如60s允许100次请求,那么红色虚线部分则原创 2020-05-24 12:33:59 · 2882 阅读 · 0 评论 -
IDEA 的 Debug 模式图标含义和基本用法
调试按钮,从左到右共8 个按钮Show Execution Point : 如果你的光标在其它行或其它页面,点击这个按钮可跳转到当前代码执行的地方Step Over : 一行一行的往下执行代码,如果这一行上有方法不会进入方法Step Into : 如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方类库的方法Force Step Into : 强制...原创 2020-05-25 00:59:29 · 6945 阅读 · 0 评论 -
6种限流方法之服务端漏桶算法
漏桶算法漏桶算法的思路来源于日常生活中常见的漏斗。之前介绍过的滑动时间算法有一个很大的问题就是在一定范围内,比如 60s 内只能有 10 个请求,当第一秒时就到达了 10 个请求,那么剩下的 59s 只能把所有的请求都给拒绝掉,而漏桶算法刚好可以解决这个问题。在漏桶算法中,无论上面的水流倒入漏斗有多大,也就是无论请求有多少,它都是以均匀的速度慢慢流出的。当上层的水流速度大于下层的流出速度时,漏斗就会慢慢充满,当漏斗满了之后就会溢出(丢弃)新来的请求;当上面的水流速度小于下面流出的速度时,漏斗永远原创 2020-05-24 12:32:38 · 1245 阅读 · 0 评论 -
报错信息:Explicit type argument EquipRecordGate can be replaced with
完整报错信息:Explicit type argument EquipRecordGate can be replaced with <> less... (Ctrl+F1)Inspection info: This inspection reports all new expressions with type arguments which can b...原创 2020-05-29 06:13:45 · 1162 阅读 · 0 评论 -
springboot项目启动脚本并设置开机自启动隐藏黑窗口
原文地址:【架构师小跟班 www.jiagou1216.com】springboot项目的部署与SSM架构的部署(打成war包到tomcat/webapps/下)有所不同,比较明显的是springboot打包为jar包,运行则是通过java -jar xxx.jar命令执行,不再需要放置在tomcat下面。使用Maven生成jar包:demo-0.0.1-SNAPSHOT.jar传统方式:java -jar demo-0.0.1-SNAPSHOT.jar升级版本以上方法.原创 2020-05-25 00:15:18 · 2719 阅读 · 0 评论 -
SpringBoot项目资源初始化加载的几种方式
一、问题日常业务模块开发的过程中,难免会需要做一些全局任务、缓存、线程等的初始化工作,那么如何做呢?方法有很多,但具体又要怎么选择呢?二、资源初始化1、既然我们要做资源的初始化,那么就要了解一下springboot启动过程。按照前面的分析,Spring-boot容器启动流程总体可划分为2部分:执行注解:扫描指定范围下的bean、载入自动配置类对应的bean加载到IOC容...原创 2020-05-25 10:56:37 · 2010 阅读 · 0 评论 -
idea设置支持es6语法
不设置是这样的,报错信息:String templates are not supported by current JavaScript version虽然程序能够正常运行,但是阅读代码时看起来非常难受。原因:上面代码其实使用的是es6的新语法,但是我们idea中设置的JavaScript的版本低于6,所以才出现上述问题。怎么解决呢?file>settings>Lauguages & Frameworks>javascript:将javascript la原创 2020-05-24 12:44:14 · 1486 阅读 · 0 评论 -
springboot集成Thymeleaf时页面跳转和路径问题
众所周知,springboot简化了框架整合的相关配置。默认static中放静态页面,templates中放动态页面。编写测试代码新建两个页面分别放到static和templates目录下。static/hello.html 1 2 3 4 5 6 7 8 9 10 <!DOCTYPEhtml> <htmllang="en"> <head&..原创 2020-05-24 12:47:55 · 5962 阅读 · 0 评论 -
前后端分离框架如何用postman测试接口(解决权限问题的两种方式)
项目背景:1、前后端分离框架,前端用的是vue、element,后端使用springboot2、后端采用spring security作为安全认证框架如果直接访问,结果是这样的:{"msg":"请求访问:/equip/detail/1,认证失败,无法访问系统资源","code":401}目前站长用的两种方式:一种是直接在security配置文件Sec...原创 2020-06-01 12:29:01 · 7231 阅读 · 4 评论 -
开发者导航:MySQL下载及安装教程
MySQL是一个流行的开源关系型数据库管理系统,它被广泛用于各种应用程序中,以存储和管理数据。原创 2024-04-03 14:27:47 · 453 阅读 · 0 评论 -
怎么解决MySQL报错:Unknown collation: ‘utf8mb4_0900_ai_ci‘
[ERR] 1273 - Unknown collation: 'utf8mb4_0900_ai_ci'[ERR] SET FOREIGN_KEY_CHECKS=0;原创 2022-04-10 13:23:54 · 3624 阅读 · 0 评论 -
Linux系统如何搭建MySQL主从复制和读写分离(双机热备)?
主从复制:当mysql数据库中的数据量过大,查询数据非常困难时,无论如何优化都会造成瓶颈,这时需要添加服务器设备来实现分布式数据库,实现多机热备份,实现多机热备,您必须首先了解主从数据库服务器版本的要求。主从mysql的安装和运行版本必须一致。因此,我们使用mysql自带的复制来实现mysql多机热备份的功能。mysql版本是5.7,用于演示。读写分离:它是将数据库上的读写操作分离,在多台服务器上共享读写压力,通常用于读远远大于写的情况。读写分离的基本原则是让主数据库处理事务性的添加、修改和原创 2020-05-24 12:49:26 · 1161 阅读 · 0 评论 -
常见的几种数据库及其介绍、分类、作用和特点
数据库是一个组织良好的数据集合,它允许用户和应用程序以结构化的方式存储、检索和管理数据。数据库管理系统(DBMS)是用于与数据库交互的软件,它提供了创建、查询、更新和维护数据库的工具和功能。原创 2024-04-03 14:35:33 · 4324 阅读 · 0 评论 -
开发者导航:TeleDB学习笔记之表类型设置原则
在了解TeleDB表类型设置原则之前,我们需要知道什么是TeleDB。TeleDB是电信公司自主研发的一款分布式数据库产品,它采用了传统的分布式数据库架构,包括数据库的拆分(分库分表)以及SQL语句的路由和转发功能。TeleDB还实现了全局索引的功能,但这种数据库主要服务于SQL在线事务处理(OLTP)业务,以及在极少数情况下用于统计分析。TeleDB的基础数据库服务单元称为SET,每个SET基于主从复制架构,可以支持PostgreSQL和MySQL等多种数据库。原创 2024-03-18 15:46:38 · 1563 阅读 · 0 评论 -
Navicat数据传输时报ORA-01950: no privileges on tablespace ‘USERS‘
2.系统权限unlimited tablespace是隐式(没有显式包括)在dba, resource角色中的一个系统权限;因为我们同事分别开发不同版本代码,数据库用的是同一个,这就导致测试数据相互影响,所以准备新建个模式(用户),把原来的表和数据复制一份到新的用户模式下。1.新创建的用户,如果没有分配给unlimitedtablespace系统权限的用户,必须先给他们指定限额才能在表空间中创建对象。我这里是因为新创建的用户,缺少权限,我看网上有人说可回收了DBA角色也可能导致这个问题。原创 2024-04-03 14:10:59 · 1782 阅读 · 1 评论 -
PostgreSQL常用语法总结
PostgreSQL常用语法总结。原创 2024-03-18 15:15:26 · 3053 阅读 · 0 评论 -
JSP页面中Java代码和JS代码初始化问题
所以当你点击“查看”按钮的时候,JS代码中的showRealPasswd()方法并不会去调Java类中的writeItemLogHBLT()方法,因为这个方法变成了常量1。众所周知,JSP页面中是可以直接写原生Java代码的,只是需要把Java代码放到中。当JSP页面加载的时候,中的代码就会初始化,而不会等你调用的时候执行。可以新建一个JSP页面,Java代码的调用写在这个JSP中,然后在原来的JSP页面中调用这个页面。当用户点击页面上某个按钮的时候,记录用户的操作日志到数据库中。原创 2024-05-06 20:11:48 · 458 阅读 · 0 评论 -
Oracle 10G安装指导教程
8、SCOTT和HR用户的沟去掉(解锁这两个账户),如下图所示,点击“确定”: 把口令设置为和用户名一样。注:此口令即是管理员密码。原创 2024-08-28 13:33:23 · 2213 阅读 · 0 评论 -
Oracle的图形化工具PL/SQL介绍及使用
PL/SQL是oracle对sql语言的过程化扩展在SQL语言中添加了过程处理语句(如分支,循环),使SQL语言具有过程处理能力数据库触发器是一个与表相关联、存储的PL/SQL程序。每当一个特定的数据操作语句(Insert,Update,delete)在指定的表上发出时,Oracle自动地执行触发器中定义的语句序列。触发器的类型语句级触发器在指定的操作语句操作之前或之后执行一次,不管这条语句影响了多少行。行级触发器(FOR EACH ROW)触发语句作用的每一条记录都被触发。原创 2024-08-28 13:34:29 · 2106 阅读 · 0 评论 -
Oracle高级函数:分组排序rank() over (partition by)或row_number() over(partition by)
分组后排序,在使用 row_number() over()函数时候,over()里头的分组以及排序的执行晚于 where 、group by、 order by 的执行。在这个查询中,我们使用了partition by class来将数据按照班级进行分区,然后按照成绩降序排列。row_number() over(partition by 分组列 order by 排序列 desc)-- 先分组,再排序,取第一名。计算每个班级中学生的成绩排名。-- 单纯排序,无分组。-- 先分组,再排序。原创 2024-02-02 16:19:59 · 2337 阅读 · 0 评论 -
Oracle中SQL语法及对象的使用方法
SQL> select empno,ename,sal,(select ename from emp where empno=7839) 总裁 from emp;SQL> @C:\课程\JavaEE\oracle【3天】\资料\testdelete.sql。索引可以提高查询速度,我们只需要创建索引,至于怎么使用索引,是oracle系统内部的事情。2.(根本)delete是DML(可以回滚),truncate是DDL(不可以回滚)第二种写法:【相关子查询:将主查询中的值 作为参数传递给子查询】原创 2024-08-28 13:35:01 · 1351 阅读 · 0 评论 -
开发者导航:Struts2学习笔记之:国际化
软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的、符合来访者阅读习惯的页面或数据。原创 2024-04-06 10:00:00 · 881 阅读 · 0 评论 -
开发者导航:Struts2学习笔记之:主要元素介绍
其实结果类型就是一个类,这些类都实现com.opensymphony.xwork2.Result接口。或者继承自该接口的实现类org.apache.struts2.dispatcher.StrutsResultSupport。这些类都有一个doExecute方法,用于执行结果视图。【查看源码各种结果类型的类结构】struts的内部实现就是Servlet目的:更加灵活的设置验证码的宽度和高度第一步:给结果类添加width和height的属性和get/set访求。原创 2024-04-05 21:10:02 · 630 阅读 · 0 评论