随笔分类 - java知识随笔
该分类将会分享工作上的一些经验和知识给大家
摘要:一、定义一个BaseController public class BaseController { public HttpServletRequest getHttpServletRequest(){ ServletRequestAttributes requestAttributes = (Se
阅读全文
摘要:1.添加依赖<dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-core</artifactId></dependency>2.代码演示: public class Test
阅读全文
摘要:本次导出使用糊涂工具包的导出工具,对期进行小封装: @Target({ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface ExportProperty { /** * 导出字段名
阅读全文
摘要:spring的这个工具有个大坑: @Test public void test2() { List<A> list = new ArrayList<>(); //com.sentinel.demo.kk.A; list.add(new A("kk.A")); User user = new User
阅读全文
摘要:一:redis的持久化 1. rdb(快照):简单的说就是将redis内存中的所有数据都保持的磁盘中,生成dump.rdb文件 保存策略:save xx kk 意思是在xx秒内,变化的key数量到达kk时就会生成一次dump.rdb文件,默认的策略有: save 900 1 save 300 10
阅读全文
摘要:一:aop的大致流程 1.我们需要往容器中注入AnnotationAwareAspectJAutoProxyCreator后置处理器,该后置处理器可以解析所有的切面 advisor 和生成代理类 2. 如果我们使用@EnableAspectJAutoProxy 或者 @EnableTransacti
阅读全文
摘要:背景:我们的商家端有个商品删除接口,某个时间段,突然被大量访问,经过调查发现,是有人通过脚本来刷我们的接口,因为正常的接口只要获取到登录的token就可以不断的调用接口: 现在我们的思路是使用令牌限流方法,令牌就是一个UUID 通过上图知道,对方要刷我们接口,必须知道需要先调用获取token的接口,
阅读全文
摘要:说到分布式锁,我们都会想到setNx命令,存在就不更新,不存在就更新成功,根据这个命令,看如下代码有啥问题? 1.上面的分布式锁实现会出现的问题: 如果代码执行到减库存的操作,此时服务挂了,如断电了,那么就会导致死锁,其他线程永远都进不来了 解决方案:加个过期时间,如加了10s 2. 上面加了过期时
阅读全文
摘要:背景:很多商城,商品详情的链接格式:https://item.jd.com/100005786822.html,不同的商品详情的链接不一样的地方在于商品编号,如,我有个商品1002002,那么商品详情的链接为https://item.jd.com/1002002.html; 当我们访问商品详情链接时
阅读全文
摘要:背景:我们在淘宝购物时,选择了某个地址,有时会提示可以选择放到附近的快递柜子,这种是如何实现的呢?用redis geo api可以简单的实现该功能 思路:1. 我们先将所有的快递柜子存到redis中,这些快递柜信息要包含经纬度 /** * * @param longitude 经度 * @param
阅读全文
摘要:1.我们如果有一串json数据,想创建对应的java对象,很简单,百度--json格式化: https://www.bejson.com/json2javapojo/new/
阅读全文
摘要:1.引入依赖,版本需要对应:其中javax.validation是定义规范的一些接口,而实现由hibernate-validator实现 <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</arti
阅读全文
摘要:1.跨域:对于一个路径:http:ip:port 如果协议 ip 端口三者有一个不同就有可能产生跨域问题 基于spring-cloud-gateway网关的解决方案,因为该网关使用的是reactor模式的webflux,所以: @Configuration public class CommonCo
阅读全文
摘要:1.引入maven依赖 <dependency> <groupId>com.github.axet</groupId> <artifactId>kaptcha</artifactId> <version>0.0.9</version> </dependency> 2.配置属性 @Configurat
阅读全文
摘要:public class A { private A1 a1; public A1 getA1() { return a1; } public void setA1(A1 a1) { this.a1 = a1; } } public class A1 { private A2 a2; public
阅读全文
摘要:public class Stack { private int maxSize=16; private int top; private int[] arr=null; public Stack(int maxSize) { if(maxSize<1){ throw new RuntimeExce
阅读全文
摘要:背景: 约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀掉的顺序是:5,4,6,2,3。 public class CircleLinkList { /** * 约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开始
阅读全文
摘要:public class DubbleLinkList { private Node head=null; public void addNode(Node node){ if(node==null){ return; } if(null==head){ head=node; return; } i
阅读全文
摘要:public class SingleLinkList { private HeroNode head=new HeroNode(-1,""); public void addNode(HeroNode heroNode){ HeroNode temp=head; while (true){ if(
阅读全文
摘要:public class ArrayQueue { private int maxsize=16; private int last; private int front; private int[] arr; public ArrayQueue(int maxsize) { if(maxsize<
阅读全文