java
文章平均质量分 69
一往无前的闲鱼
这个作者很懒,什么都没留下…
展开
-
springboot的main方法启动原理源码跟踪
启动流程步骤开始:1.首先点击run方法进入SpringApplication.run(WechatPortalBootServletInitializer.class, args);2.找到run方法的直接调用方法public ConfigurableApplicationContext run(String... args) { StopWatch stopWatch = new StopWatch(); stopWatch.start();原创 2021-09-16 14:33:13 · 253 阅读 · 1 评论 -
1.8 HashMap.put 源码解读
put 操作:/*** Implements Map.put and related methods** @param hash hash for key* @param key the key* @param value the value to put* @param onlyIfAbsent if true, don’t change existing value* @param evict if false, the table is in creation mode.* @ret原创 2021-08-02 15:17:38 · 139 阅读 · 0 评论 -
RocketMQ-02
1. 案例介绍1.1 业务分析模拟电商网站购物场景中的【下单】和【支付】业务###1)下单[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FmvVpJJC-1627788012991)(img/下单组件图.png)]用户请求订单系统下单订单系统通过RPC调用订单服务下单订单服务调用优惠券服务,扣减优惠券订单服务调用调用库存服务,校验并扣减库存订单服务调用用户服务,扣减用户余额订单服务完成确认订单###2)支付[外链图片转存失败,源站可能有防盗链机制转载 2021-08-01 11:20:34 · 130 阅读 · 0 评论 -
RocketMQ-03
1. 高级功能1.1 消息存储分布式队列因为有高可靠性的要求,所以数据要进行持久化存储。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I3yoMCfB-1627787860480)(img/消息存储方式.png)]消息生成者发送消息MQ收到消息,将消息进行持久化,在存储中新增一条记录返回ACK给生产者MQ push 消息给对应的消费者,然后等待消费者返回ACK如果消息消费者在指定时间内成功返回ack,那么MQ认为消息消费成功,在存储中删除消息,即执行第6步;转载 2021-08-01 11:18:11 · 249 阅读 · 0 评论 -
RocketMQ-02
1. 案例介绍1.1 业务分析模拟电商网站购物场景中的【下单】和【支付】业务###1)下单[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-49XNkX9g-1627787820381)(img/下单组件图.png)]用户请求订单系统下单订单系统通过RPC调用订单服务下单订单服务调用优惠券服务,扣减优惠券订单服务调用调用库存服务,校验并扣减库存订单服务调用用户服务,扣减用户余额订单服务完成确认订单###2)支付[外链图片转存失败,源站可能有防盗链机制转载 2021-08-01 11:17:21 · 87 阅读 · 0 评论 -
RocketMQ-01
1. MQ介绍##1.1 为什么要用MQ消息队列是一种“先进先出”的数据结构[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V5dnq5yt-1627787628352)(img/queue1.png)]其应用场景主要包含以下3个方面应用解耦系统的耦合性越高,容错性就越低。以电商应用为例,用户创建订单后,如果耦合调用库存系统、物流系统、支付系统,任何一个子系统出了故障或者因为升级等原因暂时不可用,都会造成下单操作异常,影响用户使用体验。[外链图片转存失败,源站转载 2021-08-01 11:15:07 · 138 阅读 · 0 评论 -
解决使用redisTemplate set方法保存出现\x00\问题
**解决使用redisTemplate set方法保存出现\x00\问题(这是一个细节问题,很容易被坑: 引用博客 https://www.cnblogs.com/linyb-geek/archive/2020/06/17/13153775.html?ivk_sa=1024320u)**在项目有个需求要保存一个字符串到redis,并设置一个过期时间。这个需求一看非常简单,使用redisTemplate一行代码搞定,代码如下redisTemplate.opsForValue().set(“userK转载 2021-06-17 10:37:50 · 682 阅读 · 0 评论 -
ehcache-demo
```javascript```javascript```javascript```java搭建本地缓存ehcache的demo1.pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocatio.原创 2020-06-29 00:18:26 · 217 阅读 · 0 评论 -
fork/join任务拆分的用法
1.当我们遇到任务量比较大,计算耗时任务可以用该框架充分利用cpu的并行处理快速得到结果!import java.util.concurrent.ExecutionException;import java.util.concurrent.ForkJoinPool;import java.util.concurrent.ForkJoinTask;import java.util.concurrent.RecursiveTask;/** * @program: * @description:原创 2020-06-15 16:10:21 · 559 阅读 · 0 评论 -
mybatis sql 判空和空串踩的坑解决,以及转义字符的用法
mybatis sql 判空和空串踩的坑解决,以及转义字符的用法写注解式 sql 的时候一直报错,不知道怎么转义这里做个举例和列举一些转义符踩坑点: 入参是字符串列下,我并没有传入参数,但是 sql 再组装的时候还是把字符串拼接进去了,所以必须要判断是否为 null 和是否是空串@Select()但是在 mybatis 中判断空窜的写法必须转义单引号,这样转义即可 ‘’...原创 2020-03-11 14:29:25 · 1745 阅读 · 2 评论 -
fastjson常用api接口举例
fastjson使用教程1.这里推荐一篇博客,博主写的挺好的,我这里做一些fastjson使用举例https://blog.csdn.net/srj1095530512/article/details/825297592.Json是一种轻量级的数据交换格式,采用一种“键:值”对的文本格式来存储和表示数据,在系统交换数据过程中常常被使用,是一种理想的数据交换语言,下面代码演示下阿里fastjs...原创 2020-02-22 16:50:45 · 658 阅读 · 0 评论 -
对象排序
1.利用Collections.sort方法并重写comparetor方法,进行自定义对象排序2.场景,一般通讯录排序等,列表排序用的很多3.代码实现,这里为了方便展示都写在了一个类中了package com.aop.aspect.datastructure;import lombok.extern.slf4j.Slf4j;import java.util.Arrays;import ...原创 2020-02-20 23:17:24 · 193 阅读 · 0 评论 -
springAop
springAop前言:这里介绍AOP的基本使用,aop知识点比较多后续会不断补充~1.概念介绍(通俗易懂介绍)(1).Join point(连接点)对哪个方法进行处理增强,这个方法就是点程序执行过程中的一点,例如方法执行或异常处理。在Spring AOP中,连接点始终代表方法的执行(2).Pointcut(切入点)作用范围,如在哪个包下,哪个类中等等!切入点是与连接点匹配的表达式(...原创 2020-02-12 16:16:55 · 144 阅读 · 0 评论 -
git基础
!在这里插入图片描述原创 2020-02-08 23:29:47 · 81 阅读 · 0 评论 -
动态代理
jdk动态代理 & cglib动态代理注意:这里为了方便代码展示,代理的方法都是匿名类部内进行的重写方法.jdk动态代理demo:第一步: 新建一个接口package com.proxy;public interface JdkClass {String print();}第二步:写一个实现类继承上面的接口package com.proxy;public class j...原创 2020-02-08 22:42:02 · 162 阅读 · 0 评论 -
java基础之反射
反射一个Class实例包含了该class的所有完整信息:在实例中保存了该class的所有信息,包括类名、包名、父类、实现的接口、所有方法、字段等,因此,如果获取了某个Class实例,我们就可以通过这个Class实例获取到该实例对应的class的所有信息这种通过Class实例获取class信息的方法称为反射Reflection ┌───────────────────────────...原创 2020-01-15 16:09:37 · 86 阅读 · 0 评论