后端
文章平均质量分 63
Yuwen_forJava
这个作者很懒,什么都没留下…
展开
-
gts分布式事务框架踩坑记录
gts分布式事务原创 2022-08-18 19:05:13 · 532 阅读 · 1 评论 -
导出EXCEL工具类
基于注解设置excel的字段,一行代码导出数据为excel的工具类原创 2022-06-07 10:41:11 · 421 阅读 · 0 评论 -
ThreadLocal源码分析
1.ThreadLocal 是什么Threadlocal 是 jdk 中一个非常重要的工作类。它是线程本地存储,可以保证各个线程之间的变量互不干扰。它的数据结构:ThreadLocalMap有点类似HashMap的结构,只是HashMap是由数组+链表实现的,而ThreadLocalMap中并没有链表结构。注意Entry, 它的key是继承自WeakReference, 是弱引用类型,在 GC 时,key 有可能会被回收掉。2.ThreadLocal 的方法2.1 set()原创 2022-03-11 15:27:33 · 824 阅读 · 1 评论 -
ReentrantLock加锁和解锁
1.ReentrantLock1.1 ReentrantLock是什么ReentrantLock 意思为可重入锁,指的是一个线程能够对一个临界资源重复加锁。ReentrantLock内部实现依赖于AQS。1.2 AQS是什么AQS(AbstractQueuedSynchronizer)是抽象队列同步器,在线程访问共享资源时候,会先判断资源是否上锁了,如果上锁了,那么把该线程放入CLH队列中进行等待;如果没上锁,那么把该线程设置为工作线程。AQS的主要原理图:AQS 使用一原创 2022-02-15 18:08:51 · 2167 阅读 · 1 评论 -
越挫越勇的进取之意——spring security集成jwt
1. 什么是JWT?JWT是 Json Web Token 的缩写。它是基于 RFC 7519 标准定义的一种可以安全传输的 小巧 和 自包含 的JSON对象。由于数据是使用数字签名的,所以是可信任的和安全的。JWT可以使用HMAC算法对secret进行加密或者使用RSA的公钥私钥对来进行签名。具体参见:https://www.jianshu.com/p/576dbf44b2ae2. 集成代码在上一篇博文基础下开展。上一篇:https://blog.csdn.net/Yuwen_fo原创 2021-09-09 16:16:16 · 103 阅读 · 0 评论 -
毫无存在的沉默之路——初窥spring security,springboot集成spring security
1. spring boot集成spring security1.1 初始化工程数据库创建一个 t_member 表存储用户信息DROP TABLE IF EXISTS `t_member`;CREATE TABLE `t_member` ( `id` int NOT NULL AUTO_INCREMENT, `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,原创 2021-09-08 09:45:47 · 106 阅读 · 0 评论 -
Arthas的使用
1.简介官网:https://arthas.aliyun.com/zh-cn/Arthas是Alibaba开源的Java诊断工具,深受开发者喜爱。当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户的数据处理有问题,但线上.原创 2021-08-13 10:48:01 · 555 阅读 · 0 评论 -
Java扫描指定路径下的类文件,Java获取jar包内的文件
1.思路通过给定的包名,获取到该资源路径,然后判断该路径是文件夹还是jar包。如果是文件夹,直接通过 File.listFile() 方法获取所有文件,然后找到类文件。如果是 jar 包的话,则通过 jarInputStream 构造 jarEntry 获取文件。2.代码package com.example.demo;import java.io.File;import java.io.FileInputStream;import java.io.IOException.原创 2021-07-08 10:25:45 · 1365 阅读 · 0 评论 -
把具有父子关系的数据组装成树状结构
需求:把具有父子关系的数据组装成树状结构实体类:@Datapublic class CategoryVo { /** * 类别Id */ private Integer id; /** * 父类别id当id=0时说明是根节点,一级类别 */ private Integer parentId; /** * 子类目 */ private List<CategoryVo> s原创 2021-06-16 09:32:54 · 568 阅读 · 0 评论 -
seata 1.4.2 踩坑吐血记录
1.现象描述从 git 上下载 seata 1.4.2 版本,集成到 demo 后测试发现,seata 服务端日志显示回滚成功,客户端日志无报错,但是实际上数据并没有回滚,undo_log表没有数据记录。2.解决方法这个问题困扰了我三天,靠!把配置看了一遍又一遍,做了一次次尝试,均以失败告终,最后一个seata交流群的老哥告诉我可能是数据库主键自增的锅。然后我一看我的数据表果然是自增的,遂吧业务表的主键自增去除,再次测试,成功回滚数据,T_T。接下来再次把数据库自增加上,然后在代码.原创 2021-05-18 15:34:06 · 5467 阅读 · 16 评论 -
java线程池:线程池怎么开启的、线程池怎么工作的、线程池是怎么关闭的
1.序位于 java.util.concurrent 下的 ThreadPoolExecutor 是java的线程池,可以用来管理线程。本文围绕线程池的开启、工作、关闭三个方向进行探究,去追溯源码的实现。2.线程池怎么开启的ThreadPoolExecutor 有四个构造方法,如下:public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,long keepAliveTime, TimeUnit unit, B.原创 2021-03-23 19:34:33 · 2773 阅读 · 0 评论 -
java集合的数据结构与元素有序性
目录1.引言2.总结3.java集合概述3.1ArrayList3.2LinkedList3.3Vector3.4HashMap3.5LinkedHashMap3.6TreeMap3.7Hashtable3.8HashSet3.9LinkedHashSet3.10TreeSet1.引言本文是对常见的java(1.8)集合的一些总结,不足之处,欢迎看官们在评论区纠正。2.总结^_^,先放大招3.java集...原创 2021-01-31 17:18:50 · 423 阅读 · 0 评论 -
springboot设置多数据源,使用 atomikos 管理多数据库事务
springboot设置多数据源本文使用springboot框架,设置两个数据源(mysql,oracle)。1.项目结构2.数据库表结构两个数据库的结构一样mysql:DROP TABLE IF EXISTS `emp`;CREATE TABLE `emp` ( `id` int(11) NOT NULL, `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,原创 2020-10-25 16:12:11 · 602 阅读 · 0 评论 -
java多线程与自定义线程池
1. 多线程的优缺点优点:提升cpu使用率 异步处理任务,提升响应速度缺点:开启线程需要占用一定的内存空间(默认情况下,主线程占用1M,子线程占用512KB),如果开启大量的线程,会占用大量的内存空间,降低程序的性能 多线程之间存在数据共享问题,提高技术复杂度2. java开启多线程 继承Thread类,重写 run() 方法 实现Runnable接口,重写 run() 方法 实现Callable接口,重写 call() 方法 3. 线程池“..原创 2020-08-30 14:01:08 · 243 阅读 · 0 评论 -
Java 遍历 HashSet 为什么输出是有序的
1.问题今天学习数据结构哈希表,知道了哈希表的牺牲了顺序性,从而保证了效率。然后我想到了java中的 hashset和Treeset,我记得以前学习set的时候,老师说set元素是有序的,有就是说,hashset 和 treeset都是有序的。可是现在在学习数据结构的时候发现hashset 是无序的,treeset 是有序的,那这就和前面所说的set是有序的互相矛盾了,所以让来验证一下,如下:使用的是 java 8HashSet<Integer> set = new Ha...原创 2020-06-14 18:45:06 · 1304 阅读 · 2 评论 -
spring boot集成swagger
参考:https://www.jianshu.com/p/dcaff30f91cc?tdsourcetag=s_pctim_aiomsg1.什么是swagger?Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。一个可视化的管理接口的页面,并且可以导出接口文档。2.spring boot集成swagger2.1 新建spri...原创 2019-11-09 14:52:01 · 185 阅读 · 0 评论