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