当前位置: 首页 > news >正文

国外html5网站模板指数查询

国外html5网站模板,指数查询,个人网站经营性备案,做美食的视频网站Async和SpringSecurityContext 场景回溯 在执行一个用时较长的批量插入业务的时候,我尝试使用Async异步对业务进行优化,但是却给我报了空指针的错误,定位之后发现 此处我是基于SpringSecurity来获取用户的 是currentUserService获取到的当前登陆用户为空导致的,但是当前确实是…

Async和SpringSecurityContext

场景回溯

在执行一个用时较长的批量插入业务的时候,我尝试使用@Async异步对业务进行优化,但是却给我报了空指针的错误,定位之后发现

image-20230531185851242

此处我是基于SpringSecurity来获取用户的

image-20230531190558107

是currentUserService获取到的当前登陆用户为空导致的,但是当前确实是处于登陆状态的

然后,我删除了业务方法上的@Async注解,这个方法执行了20s但是没有出现报错

由此可以确定是异步导致的错误

错误原因

SecurityContextHolder的底层默认是基于ThreadLocal的,

image-20230531190351672

image-20230531190405072

基于ThreadLocal就会导致异步执行的子线程拿不到主线程的ThreadLocal,从而导致SecurityContext中没有用户信息;

解决方式

既然子线程没有拿到父线程的ThreadLocal那就让他拿到不就好了,那我们该如何拿到呢?

InheritableThreadLocal是Java中的一个类,它提供了类似于ThreadLocal的功能,但具有额外的特性。它允许在ThreadLocal中存储的值在创建子线程时被子线程继承。

那我们如何让SecurityContext底层使用InheritableThreadLocal呢?

SpringSecurity贴心的为我们设计了基于InheritableThreadLocal的SecurityContext策略

并且在SecurityContextHolder中已经给出了对应的配置项

image-20230531191642594

我们只需要进行相应的配置即可

    public static void main(String[] args) {SpringApplication.run(LabourServiceApplication.class,args);//配置基于InheritableThreadLocal的SecurityContextSecurityContextHolder.setStrategyName(SecurityContextHolder.MODE_INHERITABLETHREADLOCAL);}
http://www.mmbaike.com/news/63340.html

相关文章:

  • 河北网站建设seo成功案例分析
  • 互联网门户网站有哪些优化营商环境 提升服务效能
  • 汽车低价网站建设爱情链接
  • 杭州做企业网站企业线上培训平台
  • pc网页游戏网站群站优化之链轮模式
  • 推荐坪地网站建设参考消息网国内新闻
  • 怎么做幼儿园网站介绍ppt成都网络营销公司排名
  • 网站建设工具 hbuild微信管理软件哪个最好
  • 做黄图网站接广告好赚吗网络黄页平台网址有哪些
  • 母婴网站怎么做拉新推广渠道
  • 网站在美国做的服务器网站交易平台
  • 网站建设 软件有哪些方面怎么做一个网站平台
  • 怎么做bbs论坛网站搜索营销
  • 卖机械设备什么网站做推广好seo排名推广工具
  • 网站页脚需要放什么三只松鼠搜索引擎推广
  • 建设一个网站要多久沈阳seo博客
  • 山东人才招聘网搜索引擎优化需要多少钱
  • 开源程序做网站苏州seo门户网
  • 做pc端网站精英互动营销的概念
  • 广州建网站自助建站系统厦门seo优化公司
  • 青岛模板建站多少钱国内设计公司前十名
  • 百度的网址怎么写成都关键词优化排名
  • 买入网站建设费的分录百度我的订单查询
  • 扬州网站建设制作开封网站推广
  • 苏州街网站建设成都seo达人
  • ppt链接网站怎么做上海seo推广平台
  • 17网站一起做网店下载登录百度账号注册
  • 手机网站注册域名西安seo代理
  • 免费php网站百度推广代理商名单
  • 企业自建网站缺网站收录量