- 博客(32)
- 资源 (1)
- 收藏
- 关注
原创 java-工作中常见的5种加密算法
加密在工作中是很常见的事情,比如对接第三方各种参数加密签名校验、敏感数据入库(用户密码)、出平台接口等一系列的需求都是需要加解密的。这里主要说的是常用的5种加解密算法有对称加解密和非对称加密。
2024-01-16 10:03:12
1244
原创 ThreadLocal的基本使用及区别-粗略源码了解
然而在使用线程池时,各个线程是可复用的,就导致ThreadLocal变量只在创建线程时生成了一份,后续使用该线程的所有流程都使用的是创建线程时生成的ThreadLocal变量,即A用户操作时可能会获取到B用户创建的操作线程,从而获取到B用户的信息。 ThreadLocal是JDK包提供的,它提供线程本地变量,如果创建一个ThreadLocal变量,那么访问这个变量的每个线程都会有这个变量的一个副本,在实际多线程操作的时候,操作的是自己本地内存中的变量,从而规避了线程安全问题。
2024-01-12 17:33:01
912
原创 SpringCloud中OpenFeign远程调用
Feign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单。它的使用方法是定义一个服务接口然后在上面添加注解。Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了封装,使其支持了Spring MVC标准注解和HttpMessageConverters。Feign可以与Eureka和Ribbon组合使用以支持负载均衡
2023-07-13 15:20:25
221
原创 线程池ThreadPoolExecutor源码剖析
maximumPoolSize 线程池最大线程数量一个任务被提交到线程池以后,首先会找有没有空闲存活线程,如果有则直接将任务交给这个空闲线程来执行,如果没有则会缓存到工作队列(后面会介绍)中,如果工作队列满了,才会创建一个新的空任务线程,然后从工作队列的头部取出一个任务交由新线程来处理,而将刚提交的任务放入工作队列尾部。也就是说新任务进来时,不会缓存,而是直接被调度执行该任务,如果没有可用线程,则创建新线程,如果线程数量达到maxPoolSize,则执行拒绝策略。
2023-04-15 15:32:56
159
原创 MyBatisPlus代码生成器
首先需要通过逆向工程基于 t_user 表生产对应的POJO、Mapper、Service、ServiceImpl、Controller等类,项目中使用了MybatisPlus,所以逆向工程也是用了MybatisPlus提供的AutoGenerator
2022-11-17 20:30:05
287
原创 Mybatis-Plus入门-精通
MyBatis-plus简单来说就是一款 Mybatis 增强工具,用于简化开发,提高效率。下文使用缩写 mp来简化表示 MyBatis-plus,致力于 MyBatis 的基础上只做增强不做改变,为简化开发,提高效率而生。
2022-07-02 17:15:36
483
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人