我是在springboot的web项目中出现了这样的问题:
在多次导出A业务、B业务,会出现样式客串的问题(A业务的样式会窜到B业务的样式中去)
在看了ExcelUtils initialization的方法后发现作者的这个方法是不是有点问题
public static final ExcelUtils initialization() { ExcelUtils excelUtils = UTILS_THREAD_LOCAL.get(); if (excelUtils == null) { excelUtils = new ExcelUtils(); UTILS_THREAD_LOCAL.set(excelUtils); } return excelUtils; }
UTILS_THREAD_LOCAL这个是ThreadLocal,ThreadLocal不是以线程当作key存储对象实例的吗?
如果是这样的话:
1、线程51:去处理业务A
2、线程51:处理完毕-空闲
3、线程51:去处理业务B
4、ThreadLocal get到了业务A的实例,不再new 将业务A的实例的样式给了业务B使用,导致了业务B样式混乱,
如果是这样的话我不知道这个ThreadLocal在这里起到了什么作用,=-=
我是在springboot的web项目中出现了这样的问题:
在多次导出A业务、B业务,会出现样式客串的问题(A业务的样式会窜到B业务的样式中去)
在看了ExcelUtils initialization的方法后发现作者的这个方法是不是有点问题
public static final ExcelUtils initialization() { ExcelUtils excelUtils = UTILS_THREAD_LOCAL.get(); if (excelUtils == null) { excelUtils = new ExcelUtils(); UTILS_THREAD_LOCAL.set(excelUtils); } return excelUtils; }UTILS_THREAD_LOCAL这个是ThreadLocal,ThreadLocal不是以线程当作key存储对象实例的吗?
如果是这样的话:
1、线程51:去处理业务A
2、线程51:处理完毕-空闲
3、线程51:去处理业务B
4、ThreadLocal get到了业务A的实例,不再new 将业务A的实例的样式给了业务B使用,导致了业务B样式混乱,
如果是这样的话我不知道这个ThreadLocal在这里起到了什么作用,=-=