
Java
文章平均质量分 76
解决工作开发中Java后端问题解决方案
在荒野的梦想
技术支持+1991477677
展开
-
若依微服务集成Flowable仿钉钉工作流
流程设计器• 节点新增、删除、修改 :用户可以随时对审批节点进行调整,以适应新的业务需求。• 流程保存和发布 :设计完成后,用户可以将流程保存并发布,使其生效。审批人配置审批人节点的配置非常灵活,目前支持选择指定人员、角色、部门、发起人自选等等。这种设计使得审批流程的管理更加高效且有针对性。集成能力此项目可轻松基础到现有项目中,因为工作流本身就可以作为一个单独的应用部署,集成的话只需要将项目的RBAC这套关系接口提供给工作流使用即可。原创 2025-04-10 15:49:50 · 700 阅读 · 0 评论 -
ConcurrentHashMap原理详解
做插入操作时,首先进入乐观锁然后,在乐观锁中判断容器是否初始化,如果没初始化则初始化容器,如果已经初始化,则判断该hash位置的节点是否为空,如果为空,则通过CAS操作进行插入。如果该节点不为空,再判断容器是否在扩容中,如果在扩容,则帮助其扩容。如果没有扩容,则进行最后一步,先加锁,然后找到hash值相同的那个节点(hash冲突)循环判断这个节点上的链表,决定做覆盖操作还是插入操作。循环结束,插入完毕。原创 2024-06-06 09:47:22 · 1569 阅读 · 0 评论 -
微服务项目将Nacos地址、命名空间、环境等配置信息,统一放在pom.xml管理教程
在Maven项目中,src/main/resources目录下的文件通常被视为资源文件,这些资源文件在构建项目时会被复制到输出目录(如target/classes),以便在运行时被访问。通过这样的配置,你可以灵活地控制哪些文件会被视为项目的资源文件,并在构建过程中将它们复制到合适的位置。这些文件也会被视为资源文件,并在构建过程中被复制到输出目录。第一个 元素指定了src/main/resources目录,它包含了true的配置,表示对该目录下的资源文件执行过滤操作。元素用于定义一个资源目录及其配置。原创 2024-04-20 17:26:31 · 761 阅读 · 0 评论 -
若依微服务版本JSON.parse: unexpected character错误排查
,若依这里是采用在配置文件当中填写具体信息的方式,来配置是否启用xss,是否是白名单,是否是匹配链接。按照后台填写的数据处理请求,如果是不启用或者是该请求为白名单,就直接将请求放过如果不通过就交给XssFilter来处理。若依框架在网关采用配置拦截器的方式来处理XSS攻击,一旦请求被过滤器拦截,就会转入到自定义的拦截器XssFilter当中,首先解决的就是判断是否启用XSS拦截器和是否需要拦截(在网关配置Xss过滤白名单接口。原创 2024-01-09 10:38:54 · 1329 阅读 · 0 评论 -
Spring Cloud Gateway网关转发websocket服务配置
客户端向 Spring Cloud Gateway 发出请求。然后在 Gateway Handler Mapping 中找到与请求相匹配的路由,将其发送到 Gateway Web Handler。Handler 再通过指定的过滤器链来将请求发送到我们实际的服务执行业务逻辑,然后返回。过滤器之间用虚线分开是因为过滤器可能会在发送代理请求之前(“pre”)或之后(“post”)执行业务逻辑。原创 2023-10-24 10:14:21 · 3800 阅读 · 0 评论 -
ThreadLocal使用及底层详解
但是在开发中我们都是使用线程池的方式,线程池的复用不会主动结束;当我们使用SimpleDateFormat的parse()方法的时候,parse()方法会先调用Calendar.clear()方法,然后调用Calendar.add()方法,如果一个线程先调用了add()方法,然后另一个线程调用了clear()方法;在java中,栈内存归属于单个线程,每个线程都会有一个栈内存,其存储的变量只能在其所属线程中可见,即栈内存可以理解成线程的私有变量,而堆内存中的变量对所有线程可见,可以被所有线程访问!原创 2022-09-20 09:12:37 · 365 阅读 · 1 评论 -
来系统学习下 lambda 表达式吧
lambda 表达式,相信大家都不陌生,就算没有用过,那应该也听说过。我也是一样,在使用新特性stream 流处理集合相关的代码时接触到这种语法,其他地方倒是不经常使用。所以也是仅仅知道一些皮毛,对于其中的原理什么的也不怎么清楚。今天准备系统的学习一番,话不多说,接下来就开始我们的学习。lambda 表达式是 Java 8 的一个新特性,可以取代大部分的匿名内部类,简化了匿名委托的使用,让你让代码更加简洁,优雅。比较官方的定义是这样的这个匿名函数没有名称,但它有参数列表、函数主体、返回类型,可能还有一个原创 2022-07-07 16:52:14 · 126 阅读 · 0 评论 -
MySQL慢查询优化(线上案例调优)
MySQL查询优化解决方案所以针对这个问题的解决方案主要有两种:优化结果优化前,offset达到20万的量级时,查询时间过长,一直到超时。优化后,offset达到20万的量级时,查询时间为1.11s。优化结果优化前,offset达到20万的量级时,查询时间过长,一直到超时。优化后,offset达到20万的量级时,由于知道第20万条数据的id,查询时间为0.34s。......原创 2022-06-10 15:28:26 · 528 阅读 · 0 评论 -
MySQL的游标使用及作用
一、应用场景当前有三张表A、B、C其中A和B是一对多关系,B和C是一对多关系,现在需要将B中A表的主键存到C中;常规思路就是将B中查询出来然后通过一个update语句来更新C表就可以了,但是B表中有2000多条数据,难道要执行2000多次?显然是不现实的;最终找到写一个存储过程然后通过循环来更新C表,然而存储过程中的写法用的就是游标的形式。二、简介游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标充当指针的作用。尽管游标能遍历结果中的所有行,但他一次只指向一行。原创 2022-04-29 10:55:23 · 1390 阅读 · 5 评论 -
Java手把手教钉钉配置事件订阅
一、登录钉钉后台,在开发管理配置服务器出口IP二、在后台事件与回调中刷新aes_key和签名 token三、后台代码实现(注意在后台事件与回调下面还有一个请求地址为请求该方法)@RestController@RequestMapping("dingding/event")public class DingDingEvent { //钉钉事件订阅aeskey private String aeskey = "填写自己应用的"; //钉钉事件订阅token pr原创 2022-04-20 10:04:07 · 2166 阅读 · 1 评论