- 博客(18)
- 收藏
- 关注
原创 el-checkbox 选中状态 通过字符串判断
但是如果此处的status是字符串类型的true或者false,则需要通过JSON.parse将其转换成布尔类型或者配合checked来达到效果。饿了么ui的el-checkbox多选框通过布尔值true或者false判断是否是选中的状态。
2024-03-05 19:22:23 471
原创 PageHelper elementUI 分页 第一页数据正常显示,第二页显示暂无数据 bugg解决
分页可以通过前端实现或者是后端实现,这次bugg的原因是开始的时候使用的是elementUI进行前端分页的,后来改成了后端分页但是没有更改前端分页。上面第一页在进行减一操作就没了,所以做以下更改。
2024-02-21 21:50:13 170
原创 post请求下载文件,ajax
处理办法是,把生成pdf和下载pdf合并成同一个接口,这样避免了上述情况的发生,但是在前台浏览器获取pdf出现了问题,浏览器通过get请求可以直接下载文件(弹出下载框),但是这个接口是需要要是post请求(传递实体类),所以通过前台的数据处理和后台的返回头setHeader设定解决了这个问题。在这里当时想着生成pdf的请求为post,获取pdf的请求为get,通过全局变量filename来获取pdf,但是这里存在着线程安全问题,全局变量会被不同的用户更改,下载时可能会下载到另外一个用户所生成的文件。
2024-01-20 13:11:39 642
原创 html(elementUI)整合springboot,通过controller跳转对应的html页面
书写对应的controller跳转页面方法,注解必须是@Controller,否则会直接返回给浏览器字符串“text”静态文件放置在static文件目录下,并将组件需要的vue.js、ajax.js等文件放置于对应的目录。yaml文件中配置相关的路径。就会跳转到相应的页面中去了。
2024-01-20 12:49:59 400
原创 关闭订单考虑并发访问情况
如果关闭订单时如下代码实现的,会引发什么问题?1.订单在支付成功后,将订单状态改正已支付2.订单超时未支付,将订单状态改为关闭状态情况一:当订单在支付时,且关闭订单操作进入查询订单操作,然后订单完成支付并且状态更改时,此时判断订单状态是否支付的条件不会成立,这种情况不需要做操作。情况二:当关闭订单操作并且进入到判断订单状态的提交成立时,此时成功支付,订单状态更改成已支付,然后订单又被更改成已关闭.情况二的解决方案:1.悲观锁:jdk、分布式锁2.乐观锁:cas算法。
2023-09-03 13:31:27 50
原创 RabbitMQ及器高级应用
生产者发送消息到队列中,当消息存活时间过期后,消息会被死信交换机放入到死信队列,最后在被消费者消费,达到实现延迟队列的效果。看似是消费者直接将消息发送到队列中,实际上使用了默认的交换机,只有一个消费者,消费队列。消费者将消息通过交换机路由到所有与之绑定的队列中,每个队列中的消费者消费消息。rabbitmq中没有专门的延迟队列,可以通过ttl过期时间 + 死信队列实现延迟队列.存在多个消费者消费队列中的消息,提升消费能力,防止消息堆积。消息的持久化、交换机的持久化、队列的持久化。交换机类型:直连交换机。
2023-08-30 16:58:28 67
原创 feign远程调用的时候不会传递请求头问题解决
feign的远程调用不会传递请求头,但是如果需要将接受的数据传递但远程调用的微服务接口那么该如何解决?
2023-08-27 00:20:07 223
原创 未登录踢回登录页面及用户id穿透
当用户请求受保护的接口时,要先判断用户是否处于登录状态,未登录踢回登录页面,使用重定向使用户处在登陆页面。重定向两个重要的参数:重定向状态码,302. 重定向url,登陆页面url注意重定向的时候需要保存原始的请求地址,以便登录成功后直接反返回原始的请求地址.让购物车模块使用用户id来存储相应用户的订单,或者其他微服务模块可能使用用户id。
2023-08-25 19:49:29 81
原创 布隆过滤器的重置
布隆过滤器是不支持重置的,如果我们对数据库进行了写操作(insert、update、delete),如何处理布隆过滤器中的数据?insert:直接向布隆过滤器中添加数据。update:id不变,更新的只是其他部分的数据。delete:重置布隆过滤器。
2023-08-20 15:12:11 377
原创 缓存问题:缓存击穿
缓存击穿:同一个时刻,大量的请求访问一个热点key,热点key失效的瞬间,持续的大并发会直接请求数据库,就像在屏障上早开了一个洞。
2023-08-17 17:23:26 56
原创 缓存问题:缓存穿透
缓存穿透是指,查询数据库中的一个一定不存在的数据,查询流程是先对redis进行查询,缓存未命中,在对数据库进行查询,假如存在10w个不存在的数据查询请求,这十万个请求将全部打到数据库上面。
2023-08-17 00:11:05 20
原创 shardingphere
哪个服务需要shardingphere,依赖就配置到哪个pom文件,如果依赖加到了不需要的服务中,服务会寻找配置文件,没找到就报错。
2023-08-16 22:11:34 119
原创 业务异常的处理
自定义一个注解直接加载启动类上@Retention(value = RetentionPolicy.RUNTIME)//通过jdk元注解设置注解的存活时期为运行时期@Target(value = ElementType.TYPE) //通过jdk元注解设置注解的使用位置在类上。
2023-08-10 10:17:04 41
原创 MySQL主从复制原理
master节点上的dump线程,通过该线程把主节点上的数据变更以二进制日志的方式写入到bin log中。slave节点上的io线程,从master节点的bin log中读取变更的日志数据,然后将其写入到中继日志relay log,slave节点上的sql线程,从中继日志中读取变更的数据salve节点上进行执行(重发)
2023-08-09 00:42:51 21
原创 CAS保证原子性
Unsfe类中只提供了一个属性theUnsafe可以返回Unsafe类型,注意:不能通过反射获取构造器创建Unsafe对象。(目前所有CPU基本都支持硬件级别的CAS操作)我们一般不操作Unsafe类,而是操作封装好的原子类。使用Unsafe停工的CompareAndSwapXXX(...)方法。Unsafe类是CAS的核心类,提供。通过暴力反射获取Unsafe对象。获取要修改属性的偏移量。
2023-08-06 14:56:27 22
原创 HashMap线程不安全实例(debgger配合演示)
/模拟30个线程,往synchronizedMap集合中添加数据。map.put("重地", new Object());map.put("通话", new Object());map.put("通话", new Object());例如:两个线程添分别添加不同的数据,通过debgger断点演示。Hash值相同,进行了value覆盖。
2023-08-04 18:11:32 24
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人