使用攔截器進行tenantId的獲取
老師你好,例子中的tenantid是固定的,我改用攔截器進行tenantid的設置,就是login的時候將tennatid設置好提供后文調用,login接口不攔截,其他接口都攔截,先執行login操作設置tenantid,我在配置攔截器的時候我將login設置為不攔截,但它還是被攔截了,老師可以幫忙看下什么原因嗎,網上找了半天都不行,我以為是Springboot版本問題,項目用的是2.2.4,我改成2.1.4試了也不行。項目地址:https://github.com/NightOnewith/mp-high,sql文件在sql包中。
2020-02-12
? ? ? ?你這個代碼我下載下來了,我這調試起來,稍微有點費勁。我給你個思路,你看看行不行,如果不行我再幫你調試一下。
? ? ? ? 就是你不要把PaginationInterceptor注入到攔截器中,你可以像我那個例子一樣,在一個地方定義一個ThreadLocal靜態變量保存你的tennatid字段。在你的TenantInterceptor攔截器中將區分租戶的值設置到靜態變量上,然后再PaginationInterceptor中的多租戶解析器中把他取出來。例如:
用完了之后,記得把ThreadLocal清空,防止線程歸還到線程池后,被其他線程復用。
? ? ? ? 還有一個辦法你可以把tennatid在攔截器中存儲到request中,然后再PaginationInterceptor取出來。
? ? ? ?試試看看是否可行,如果不可行,再反饋給我。