一、背景介绍
ThreadLocal是线程提供的本地变量,因其线程特殊属性,被经常用于存储与线程相关的信息,如保存登录用户信息、数据库连接配置等。但我们忽略了一个关键点:ThreadLocal 只能用在同步线程中,而在异步线程或线程池中则不起作用。因此,本博文主要探讨如何在异步线程和线程池中传递 ThreadLocal 上下文。
最近在忙很多事,工作和生活都乱糟糟的,博客也停更了。写技术还是美食呢,当然是美食啦。
今天做萝卜丸子。边做边吃,忽然想起读初二的一天,同学们凑钱买了五斤萝卜丸子,然后在英语课上偷吃的故事。十五年过去了,但历历在目。
自从国内猪肉紧俏以来,市面上就经常买到进口猪肉。外国人养猪比较人性化,不给小猪做阉割,所以猪肉又腥又骚。今天抱着踩雷的心态,买了一份肉,并在叮咚上特意备注道:“只要中国猪肉!”。
今天来做个狮子头。
本周负责做调账线上化,其中一个业务需求比较棘手:提交调账申请后,需在数据表记录对应的调账类型;而在调账复核页面,列表筛选项-调账类型,需支持多选。简单枚举如下:
1 | public enum AdjustTypeEnum { |
假如调账申请A的调账类型包括应还罚息和应还总额,则数据表相应字段值为0,1。在复核页面,若调账类型复选项中包含应还罚息或应还总额,则需查询到该申请。此时,我们发现SQL内置函数FIND_IN_SET只支持单选项查询,而无法灵活拆分筛选条件和存储数据。因此,有必要调整一下数据的存储规则和查询规则。