We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
sa-token - 1.39.0 spring boot - 3.3.3
@Component
doRegisterComponent
@Component public class MySaTokenListener extends SaTokenListenerForSimple { @Override public void doRegisterComponent(String compName, Object compObj) { System.out.println("compName = " + compName); } }
2024-09-20T15:31:47.071+08:00 INFO 13976 --- [ main] w.j.f.config.satoken.SaLogForSlf4j : 全局组件 SaLog 载入成功: work.jiuri.framework.config.satoken.SaLogForSlf4j 2024-09-20T15:31:47.074+08:00 INFO 13976 --- [ main] w.j.f.config.satoken.SaLogForSlf4j : 全局配置 SaTokenConfig [tokenName=jiuri-admin2-token, timeout=86400, activeTimeout=1800, dynamicActiveTimeout=false, isConcurrent=true, isShare=true, maxLoginCount=12, maxTryTimes=12, isReadBody=true, isReadHeader=true, isReadCookie=true, isWriteHeader=false, tokenStyle=uuid, dataRefreshPeriod=30, tokenSessionCheckLogin=true, autoRenew=true, tokenPrefix=null, isPrint=false, isLog=true, logLevel=trace, logLevelInt=1, isColorLog=true, jwtSecretKey=null, httpBasic=, httpDigest=, currDomain=null, sameTokenTimeout=86400, checkSameToken=false, cookie=SaCookieConfig [domain=null, path=null, secure=false, httpOnly=false, sameSite=null], sign=SaSignConfig [secretKey=null, timestampDisparity=900000]] 2024-09-20T15:31:47.077+08:00 INFO 13976 --- [ main] w.j.f.config.satoken.SaLogForSlf4j : 全局组件 SaTokenDao 载入成功: cn.dev33.satoken.dao.SaTokenDaoRedisJackson 2024-09-20T15:31:47.078+08:00 INFO 13976 --- [ main] w.j.f.config.satoken.SaLogForSlf4j : 全局组件 SaTokenContext 载入成功: cn.dev33.satoken.spring.SaTokenContextForSpringInJakartaServlet 2024-09-20T15:31:47.080+08:00 INFO 13976 --- [ main] w.j.f.config.satoken.SaLogForSlf4j : 全局组件 SaJsonTemplate 载入成功: cn.dev33.satoken.spring.json.SaJsonTemplateForJackson compName = SaJsonTemplate
可以看到只有最后注册的 SaJsonTemplate 组件,才会被正常侦听。 通过debug发现自定义的侦听器并不是最先注册的,所以在注册之前发生的事件无法被正常侦听到
SaJsonTemplate
SaTokenEventCenter.registerListener(new MySaTokenListener()); 手动注册的没有这个问题。 是否可以提高通过 @Component 注册的自定义侦听器的的优先级,或者是否有其他方法可以手动提高优先级。
SaTokenEventCenter.registerListener(new MySaTokenListener());
The text was updated successfully, but these errors were encountered:
你是什么需求,需要监听 doRegisterComponent 方法
Sorry, something went wrong.
一开始的需求是希望集成redis后可以给key添加一个自定义的前缀,而不是使用 tokenName。 所以想着在组件注册后修改一下 StringRedisTemplate 和 RedisTemplate<String, Object>,这样就不用自己去实现 SaTokenDao。 然后就发现 doRegisterComponent 并不能监听到 SaTokenDaoRedisJackson 的注册。
redis
key
tokenName
StringRedisTemplate
RedisTemplate<String, Object>
SaTokenDao
SaTokenDaoRedisJackson
给redis的key添加自定义前缀的功能我已经实现了。 但是通过@Component注册的全局侦听器确实会因为注册顺序导致错过部分事件。 所以在这里提问一下。这是bug吗?或者是故意这样做的?
现在没做顺序控制
No branches or pull requests
使用版本:
sa-token - 1.39.0
spring boot - 3.3.3
涉及的功能模块:
测试步骤:
使用
@Component
注册了一个自定义的全局侦听器,并监听全局组件注册事件doRegisterComponent
。代码如下:可以看到只有最后注册的
SaJsonTemplate
组件,才会被正常侦听。通过debug发现自定义的侦听器并不是最先注册的,所以在注册之前发生的事件无法被正常侦听到
疑问
SaTokenEventCenter.registerListener(new MySaTokenListener());
手动注册的没有这个问题。是否可以提高通过
@Component
注册的自定义侦听器的的优先级,或者是否有其他方法可以手动提高优先级。The text was updated successfully, but these errors were encountered: