spring boot项目中handlerinterceptor autowired 为空解决办法
2023-06-13 09:15:57 时间
在我们使用拦截器的时候,有时候需要使用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方式注入:
相关文章
- 玩转 Spring Boot 应用篇(项目打包、发布)(二十)
- 解决Spring Boot项目放到服务器上运行出现时差问题
- Spring Boot电商项目
- 解释spring框架中bean的生命周期_Spring bean的生命周期
- 牛刀小试——五分钟入门Spring Boot
- Spring Boot整合Mybatis Plus[极简教程]
- Spring Boot+Keycloak从零到壹
- spring-boot 项目实践总结
- spring boot整合jsp的时候访问页面错误日志:Path with "WEB-INF" or "META-INF":
- 这款Spring Boot + Vue开源博客系统实战项目太赞了!
- Spring Boot 实现万能文件在线预览,已开源,真香!!
- Spring Boot如何实现在线预览?这个开源项目可以学习一下,支持99%常用文件!
- Spring Boot的加密和解密(二)
- 基于Spring boot和Mybatis外卖项目瑞吉外卖Day9-Redis的快速入门
- 基于Spring boot的外卖项目 瑞吉外卖Day11 实现Mysql读写分离
- Spring Cloud Task 核心组件-Task Repository
- Spring boot+redis实现消息发布与订阅的代码
- Spring-Boot快速搭建web项目详细总结详解编程语言
- 什么是 Spring Boot详解编程语言
- SpringBoot之外部Tomcat运行Spring Boot项目详解编程语言
- 什么是Spring Boot详解编程语言
- Spring Boot整合 Thymeleaf 模板引擎详解编程语言
- Spring Boot(十三):spring boot小技巧详解编程语言
- Spring Boot(四):thymeleaf使用详解编程语言
- Spring Boot 2.x :通过 spring-boot-starter-hbase 集成 HBase
- 在 IDEA 中创建 Spring Boot 项目的方式(详细步骤教程)