spring boot项目中handlerinterceptor autowired 为空解决办法
2023-02-18 16:31:20 时间
在我们使用拦截器的时候,有时候需要使用bean对象,这个时候,如果我们直接使用了@autowired或者是@Resource注解的的时候,发现对象为空。是什么原因导致的呢?
无注入时没有问题,但有注入运行拦截器中CacheService的结果为null。
造成注入CacheService为null的原因
是因为拦截器加载是在SpringApplicationContext创建之前完成的,所以在拦截器中注入实体CacheService就为null。
知道了问题出现的原因,那么解决办法有两种情况:
1:直接通过springApplicatinContext的getBean方法。如下图:
ApplicationContext ac1 = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getServletContext());
//这种方式获取
cacheUtils = (CacheUtils) ac1.getBean("cacheUtils");
2:通过spring boot的方法,配置成bean,然后通过bean方式注入:
相关文章
- Windows 双宽带双网卡
- 驱动开发:WinDBG 配置内核双机调试
- typecho1.2 (18.10.23) 新窗口打开链接
- kafka单条消息过大导致线上OOM,运维连夜跑路了!
- Rime 小狼毫 五笔输入法自定义短语
- Spring Boot整合分布式搜索引擎ElasticSearch 实现相关基本操作
- TAPD思享汇|高科制造企业如何软硬协同、敏捷提效?
- VS2013+WDK8.1 驱动开发环境配置
- 轻量级SaaS化应用数据链路构建方案的技术探索及落地实践
- 让 Firefox 只在新标签页 newtab 显示书签栏
- 消息队列RabbitMQ核心:交换机(路由、主题、发布订阅)
- 一言 APP 添加 “今日诗词” 官方源 api
- 【教程】5步免费白嫖使用Grammarly Premium高级版
- 【教程】Windows通过注册表方式设置TCP超时时间
- Ubuntu Server snap 安装 Nextcloud
- 为 docker 容器分配宿主局域网IP地址
- Premiere Pro 2022 for mac/win(pr)更新字幕转换包
- 产品原型在工作推动中重要作用
- [Blazor] 地热数据采集项目9 Blazor Server 应用程序中进行 HTTP 请求
- Ubuntu Server 安装 Mosh