- 博客(315)
- 资源 (65)
- 收藏
- 关注
原创 nginx 日志打印请求头信息
问题: 发现nginx转发的时候,似乎把在请求头中自定义的字段弄丢了~~,所以想尝试打印出请求头找出具体原因打印请求头中的变量,需要加前缀 $http_想要nginx转发或者打印带有下划线的变量的时候,需要开启下划线的支持 underscores_in_headers on;
2024-08-24 11:45:00 66
原创 docker 最新可用镜像源地址
有的话,直接更改节点内容,没有的话,创建这个文件,加入该节点 registry-mirrors。无论是docker桌布版本,还是linux版本通用。直接更换镜像源地址即可:亲测目前可用。
2024-08-18 10:57:40 344
原创 You can‘t specify target table xxx‘ for update in FROM clause
错误明显mysql报错尽量不应该在 增删改 的里面用查询语句,如果用的话,应该搞一个临时包裹下。
2024-08-11 17:47:46 316
原创 对象属性值对比(支持复杂对象)
对比两个bean中的内容,返回其中属性的值不一致的完整信息,包括: 属性 新值 旧值找了很多工具类都没有找到,然后自己动手封装了一个,希望能给后来人带来参考;虽说是自己封装的,但实际也是站在巨人的肩膀,基于 hutool jdk 等工具类。
2024-08-02 21:07:12 241
原创 mybatis一对多结果集,主表分页查询,子表条件查询
一对多查询嵌套查询: 主表查询过程中,再次调用一个查询,取查询子表数据嵌套结果集查询: 一次性查询主表关联出子表,通过结果集封装,将自己封装为一个集合,返回一个一对多的结果今天要说的是当: 做了一对多查询后,还要对多的子表,进行条件过滤,然后在反过来应用到主表上,继续分页查询~~丧心病狂的产品汪~~至此,一个一对多,然后用子表的过滤条件,作用到主表上的 分页…已经实现了~~
2024-07-28 08:00:00 1482 8
原创 idea 启动 build output失败 类不存在/ Input length = 1 -> [Help 1]
有的可以打包但是不能运行有的可以运行但是不能打包有的既不能打包也不能运行。
2024-07-27 09:45:00 212
原创 maven私服上传jar包 400 Bad Request 错误
maven仓库的私服,一般会存放公司或者个人封装的jar包,用来共享给二次开发和协作伙伴用,很方便第一次发布没有问题,但是我第二次发布,开始报错了至此,maven私服配置完毕,可以下载jar,也可以向maven私服推送jar.也解决了,不能重复推送jar的问题。
2024-07-20 11:07:48 778
原创 导出excel带图片
列表数据导出,带图片,图片为 http://xxxxx/1.jpg 这种如何处理图片就是重点相信这个图片,一定可以让大家明白图片的坐标位置的概念了。
2024-06-27 08:30:00 246
转载 数据库版本控制--flyway
使用 Flyway 可以很方便的处理数据库表结果、数据的版本迁移,使用简单、自动化,大大提高生产力,再也不需要手工在控制台进行,那样更容易出错或者遗漏,毕竟人都是会经常犯错的。
2024-06-01 10:30:00 48
原创 java后台通用导出
导出其实很简单,只需要将数据获取到,然后导出为excel文件即可,一般我们都是通过后台查询数据,然后组装的,其实不用那么麻烦,因为前台已经获取到了数据,90%以上的情况是,只需要导出当前前台已经展示出来的数据,此时就无需做更多事情了,只需要用这些已有数据即可;利用前台传入的数据做导出这样就是一个通用的导出后台接口了,节省了二次查询组装数据的时间,也少去了数据转换的过程,可以直接将已有的前段展示数据,直接导出为excel了。
2024-05-28 21:00:03 251
原创 java 项目通用数据权限设计
权限一般分为操作权限和数据权限操作权限: 菜单,页面,按钮数据权限: 能看到的数据,包括各种页面的数据范围这里不做扩展,其实这里仅仅是最简单的方式,即直接通过限制表达到对于业务表的数据过滤,那么其实我们还可以通过其他方式限制;通过字典组限制,那么exists内部在拼接之前可能需要二次处理;通过sql语句配置限定条件,那么我们需要拼接sql语句,甚至当sql语句中有变量,我们需要解析后,再拼接到sql片段中;
2024-05-15 16:33:41 1418
原创 IDEA中SVN 的使用
svn可以老牌的代码仓库了说实话svn还是和git无法相比的,毕竟git有本地仓库的概念,可以很好的处理冲突,然而svn是没有本地仓库的概念的,所以只能拉取别人的代码,然后处理冲突后,才能提交代码;由于最近的工作换成了用svn仓库,所以不得不重拾svn,一晃过去已经5年多没用过了~~当然,使用svn自带的可视化工具也可以实现,更新 提交的操作;
2024-04-18 20:04:27 1906
原创 gateway基于redis做限流处理
限流的意义限流是针对于并发量比较高的时候,如果不针对对应的服务做限流操作,可能造成服务器压力过大,宕机等情况.一般情况下,项目中都会用到redis作为缓存,既然这样,我们完全可以用redis做gateway限流处理,可以减少sential插件的引入以及学习成本,何不美哉~
2024-04-09 09:41:18 507
原创 es-7.14.0(easy-es)使用
全文索引,首选es,最近看了下easy-es,完全与mybatis-plus类似,简单试了下,很不错;easy-es 使用的 7.14.0,这里也仅用此版本说明;安装了桌面版本docker desktop安装了es 和 kibana 中文分词 ik 都是 7.14.0倒排索引正排索引: 索引>>数据(mysql)文档中的关键词所在文档id列表;所有的这些信息就是倒排文件(还记录了关键词所在位置,出现次数)easy-es使用起来真的是很丝滑,可以直接看官网介绍了,文档很全;/**
2024-03-28 15:56:30 771
原创 获取分组后的最新一条记录
例如: 我有一张表记录着所有人员的打卡记录,我想获取每个人的最新一条记录;例如: 我有一张表记录着所有设备的上报记录,我想获取每个设备的最新一条上记录;等等类似相关的需求/**//*!/*!/*!/*!/*!/*!USE `test`;(1,'学习java','菜鸟教程','2023-01-14'),(3,'学习php','菜鸟教程1','2023-01-14'),(4,'学jsp','菜鸟教程','2023-01-14'),
2024-03-23 13:23:21 299
原创 linux java项目脚本
linux利用sdkman 管理jdk多版本命令。linux启动多个java项目命令。linux停止多个java项目命令。
2024-03-22 14:40:47 260
原创 rocketmq 4.9.6安装
docker 无法安装 4.9.6由于之前安装的版本低,有漏洞,服务器无限被攻击.没办法只能安装高版本,但是docker无法安装,仓库中根本没有这个高版本的镜像用docker 安装 rocketmq: 4.9.6 镜像找不到,找到了安装上也不好用,最后还是通过下载官网压缩包安装,不过也很快,一定要修改启动参数,否则他们设置的参数相当大,都是G的直接把服务器沾满,根本启动不了。
2024-03-21 21:52:35 476
原创 关于微信/支付宝支付
最近搞了下微信支付,支付宝支付;经历了一个 半拉柯基 的项目,走了很多弯路,也确实跟之前不太一样了,支付宝,微信支付等,都做了升级,以及一些新功能,不过仍然觉得,支付宝对接起来就是比微信支付舒服很多,所有错误都可以在文档中找到解决,而微信支付问题很多,但是解决办法在社区中都找不到解决办法…
2024-03-21 21:39:02 451
原创 docker安装rocketmq
RocketMQ整体架构设计主要分为四大部分,分别是:Producer、Consumer、Broker、NameServer。RocketMQ 消息、事件、流"实时数据处理平台,覆盖云边端协作场景,具有无限弹性伸缩、K8s友好、万亿级吞吐量保证等技术特点。安装结束,接下来会进行编码使用。
2024-03-02 09:45:02 751
原创 springboot集成mqtt
随着物联网的火热,MQTT的应用逐渐增多曾经也有幸使用过mqtt,今天正好总结下MQTT的使用;文中涉及的所有代码:MQTT-Demo。
2024-02-23 21:15:52 3986 4
原创 格式化小数位数
格式化数字一般采用 DecimalFormatDecimalFormat 可以处理各种精确的数值格式化,一般还会搭配 float double 已经精度较高的 BigDecimal 使用;小小的数字位数格式化,也搞了半天~~
2024-01-16 08:11:38 451
原创 修改对象的行为和值(代理)
直接复制一份,将属性覆盖后,返回一个新对象搞一个代理类,代理这个对象,修改对象的原有行为和值,从而达到修改属性值的目的第二种方式比较高大上,相当于手动创建了代理对象,并修改了对象的原有属性和行为!
2024-01-06 14:51:21 497
原创 优雅永不过时: spring-retry 重试框架
Spring Retry 是一个用于在 Spring 应用中实现重试机制的库。它提供了一种方便的方式来处理可能因各种原因失败的操作,并在失败时进行重试。一般可以用于: rpc重试, 数据同步等类似问题;/*** 自定义的 retry-listener*/@Component@Overridecontext.setAttribute("a", "我是Retry上下文中存入的数据");System.out.println("listener>>>开始监听");// 否决整个重试// 继续重试。
2024-01-06 14:50:46 1249
原创 springboot集成flowable工作流
1、Flowable的所有数据库表都以ACT_开头。第二部分是说明表用途的两字符标示符。服务API的命名也大略符合这个规则。2、ACT_RE_: 'RE’代表repository。带有这个前缀的表包含“静态”信息,例如流程定义与流程资源(图片、规则等)。3、ACT_RU_: 'RU’代表runtime。这些表存储运行时信息,例如流程实例(process instance)、用户任务(user task)、变量(variable)、作业(job)等。
2024-01-03 10:46:42 2452
原创 深度优先和广度优先
搜索方式不同。深度优先搜索算法不全部保留结点,扩展完的结点从数据库中弹出删去;广度优先搜索算法需存储产生的所有结点。运行速度不同。深度优先搜索算法有回溯操作,运行速度慢;广度优先搜索算法无回溯操作,运行速度快。占用空间不同。深度优先搜索算法占用空间少;广度优先搜索算法占用空间大。作用不同。虽然都可以完成树形结构的遍历,但是深度优先一般用于需要先处理最深层级逻辑,广度优先一般用于层层节点展开的处理逻辑;深度优先 用栈;广度优先 用队列;
2023-12-30 11:30:05 642
原创 jackson 前后端交互 忽略字段
某些字段就是不应该被返回到前端(无论是否为空或null),但是对于后端来说至关重要某些字段为空或者null ,不应该返回某些字段即使是空的或者null, 也要返回Jackson 还有很多其他注解,也都是非常实用的;@JsonProperty 转成json的时候,将字段名字变为另一个@JsonAlias 接收参数的时候,可以将属性增加一个名字接收参数(原名称也可以接收)等等…
2023-12-30 11:29:24 712
原创 springboot连接mongodb集群(mongoTemplate)
单机版本的mongo,直接配置yml 就可以了今天项目中遇到了需要连接mongo集群的问题,发现直接配置yml是无法实现的,百度了半天依然不行,最后参考了下另外一个成熟项目,尝试扒了下,特此记录;mongodb:pom如下:
2023-12-29 15:19:34 2049
原创 手动创建spring bean并注入
注入一个bean常用的方式有几种: 加注解,spring.favorite中添加类全路径 等今天涉及到了一个问题,就是需要在程序中,根据名字,在jar中寻找class,动态加载对象,然后变成bean 注入到spring容器中,当然还有其他问题;加载jar包中的class根据加载的class创建对象手动创建bean,注入spring容器中每个类加载器不同,那么加载的class也一定不同。
2023-12-05 19:02:24 499
原创 根据优先级 + LRU 缓存数据
在项目中遇到了,需要根据 优先级 + LRU 缓存数据;LRU 优先考虑采用hutool ,然后自己附加搞上 一个优先级就行了PriorityQueue是基于优先级堆的无界队列。PriorityQueue的作用是保证每次取出的都是队列中权值最小的元素,也可以说是最高优先级的元素。PriorityQueue的元素排序是按照自然排序来进行排序的,在创建时可以给他添加一个给元素排序的比较器。offer():添加元素到队列中,如果队列已满,则返回false。poll()
2023-11-29 16:20:30 246
原创 线程面试高频问题
只要是程序进入内存中,那么就是一个进程,一个程序可以有多个进程,例如我登录两个qq号,都是启动了一个QQ.exe的程序;进程是用来分配资源, 网络,磁盘,最主要的是内存资源;它是一个静态的概念,当程序进入内存后,一定会产生一个主线程;
2023-11-17 14:47:16 106
原创 配置文件-依赖注入
spring注入bean的时候,可以指定某些注入顺序例如:A B两个bean注入,B依赖A ,所以要先注入A 然后才能注入B,此时如何处理呢?之所以导致依赖注入顺序时效的原因是由于 类似 @Configuration 等 aop扫描是不分先后顺序的,然后通过 spring.factories文件,是明确了要注入的文件,然后由于文件上有依赖顺序,所以生效!
2023-10-16 15:31:25 146
原创 中断锁的意义
中断锁在实际业务开发中有着重要意义可中断锁使得我们可以在多线程环境中更好地处理中断问题,从而提高程序的健壮性和响应性;减少线程阻塞的可能;在持有锁的过程中,如果线程被中断,它不能响应中断,直到释放锁。这可能导致一些问题,比如如果一个线程因为某些原因被长时间阻塞,其他线程也可能会被阻塞,这可能会导致整个程序的性能下降,甚至可能导致死锁。可中断锁解决了这个问题。在持有可中断锁的时候,如果线程接收到中断信号,它会立即释放锁,并抛出InterruptedException异常。
2023-10-14 10:23:40 245
原创 @ConditionalOnProperty 用法
ConditionalOnProperty 是Spring Boot中的条件注解,它的核心功能是通过属性名以及属性值来实现的,常被用于判断某个属性是否存在,然后决定某个Bean是否创建;其实这个注解 @ConditionalOnProperty 相当于就是java SPI机制的另一种实现方式,更加灵活,在配置文件中更改,当注册中心为nacos,可以实现不重启项目就能自如切换相应实现类的效果;也就是热加载的效果,热加载其实是 @RefreshScope 发生的了作用@RefreshScope概述。
2023-10-12 15:21:08 1425 6
lib-management-system=springboot+html图书管理
2022-05-03
SuperManagementSwingTxt-swing+txt商品管理
2022-05-03
文章预览态和最终展示形态不一致
2023-07-20
关于#mysql#的问题:mysql事务(语言-java)
2023-02-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人