SpringBoot使用ApplicationContext.getBean启动报空指针处理记录

问题:项目启动报空指针

定位:新增filter中init方法使用getbean控制

解决:在新增filter上加注解

@DependsOn({"applicationContextUtils"})
@Component
@DependsOn({"applicationContextUtils"})//此处解决空指针问题
public class XssFilter implements Filter{@Autowiredprivate MultipartResolver multipartResolver=null;@Overridepublic void init(FilterConfig filterConfig) throws ServletException {//注入beanmultipartResolver=(MultipartResolver) ApplicationContextUtils.getApplicationContext().getBean("multipartResolver",MultipartResolver.class);}
}
package com.bonc.ds.web.utils;import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.annotation.Configuration;import java.util.Locale;//对Spring容器进行各种上下文操作的工具类
@Configuration
public class ApplicationContextUtils implements ApplicationContextAware {private static ApplicationContext context;@Overridepublic void setApplicationContext(ApplicationContext context) throws BeansException {ApplicationContextUtils.context = context;}public static ApplicationContext getApplicationContext(){return context;}//根据Bean名称获取Bean对象public static Object getBean(String beanName){return context.getBean(beanName);}public static Object getMassage(String key){return context.getMessage(key, null, Locale.getDefault());}
}

分析:

ApplicationContextUtils是否在Configuration的Bean初始化之前初始化是未知的。

用到的@DependsOn注解,先把SpringContextUtils注册到Spring容器里面

注解含义就是组件A要依赖于另一个组件B,也就是说被依赖的组件B会比组件A先注册到Spring容器中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/59684.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ReactPress:深入解析技术方案设计与源码

ReactPress Github项目地址:https://github.com/fecommunity/reactpress 欢迎提出宝贵的建议,欢迎一起共建,感谢Star。 ReactPress是一个基于React框架开发的开源发布平台,它不仅仅是一个简单的博客系统,更是一个功能全…

A20红色革命文物征集管理系统

🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹 赠送计算机毕业设计600…

先锋精科委身芯片“圈子” 引致交易不公允和信披不透明

不要违背圈子的规则,但也不要盲从圈子的规则。 ——语出马云。 引 言 “圈子”是钥匙,也是一把锁。 走进“圈子”,将获得包括资金、订单、货源、技术等企业发展所需的资源,能够助推一家企业乃至整个行业的跨越式发展&#…

MinerU容器构建教程

一、介绍 MinerU作为一款智能数据提取工具,其核心功能之一是处理PDF文档和网页内容,将其中的文本、图像、表格、公式等信息提取出来,并转换为易于阅读和编辑的格式(如Markdown)。在这个过程中,MinerU需要利…

【论文复现】基于深度学习的手势识别算法

本文所涉及所有资源均在这里可获取。 📕作者简介:热爱跑步的恒川,致力于C/C、Java、Python等多编程语言,热爱跑步,喜爱音乐、摄影的一位博主。 📗本文收录于论文复现系列,大家有兴趣的可以看一看…

使用QtWebEngine的Mac应用如何发布App Store

前言 因为QtWebEngine时第三方包,苹果并不直接支持进行App Store上签名和发布,所以构建和发布一个基于使用QtWebEngine的应用程序并不容易,这里我们对Qt 5.8稍微做一些修改,以便让我们的基于QtWeb引擎的应用程序并让签名能够得到苹果的许可。 QtWebEngine提供了C++和Qml的…

智能新纪元:人工智能技术的社会影响与伦理挑战-亿发

在数字化时代,人工智能(AI)正以其不可阻挡之势,深刻改变着我们的生产、生活和学习方式。它不仅是一项技术革命,更是推动社会进步的重要力量。本文将探讨人工智能如何重塑未来,以及它所带来的深远影响。 AI…

云平台虚拟机运维笔记整理,使用libvirt创建和管理虚拟机,以及开启虚拟机嵌套,虚拟磁盘扩容,物理磁盘扩容等等

云平台虚拟机运维笔记整理,使用libvirt创建和管理虚拟机,以及开启虚拟机嵌套,虚拟磁盘扩容,物理磁盘扩容等等。 掌握和使用qemu和libvirt,分别使用它们创建一个cirros虚拟机,并配置好网络。 宿主机node0的系统为ubuntu16,IP为192.168.56.200。 qemu和libvirt简介 QEMU…

mac crontab 不能使用问题简记

需要 crontab 有权限,如下截图设置 在访达上方【前往】-》【前往文件夹】输入/ 然后按 Command Shift . 显示隐藏文件,然后将 usr 放到左边栏 然后如下操作 系统设置中找到 隐私安全->完全访问磁盘 点击小锁头 点击号,将/usr/bin/c…

超简单安装油猴(tampermonkey)最新教程(保姆级)

文章目录 ‌‌Tampermonkey的简单介绍一、下载二、安装方法1.Chrome浏览器安装方法2.Microsoft Edge浏览器安装方法3.Opera浏览器安装方法 ‌‌Tampermonkey的简单介绍 ‌‌Tampermonkey是一个浏览器扩展程序,允许用户安装和管理各种用户脚本,这些脚本可…

python 如何将dataframe数据批量插入到clickhouse

1. 背景-问题描述 最近做一个资产数据清洗工作,结束后需要将数据批量插入到clickhouse;查找并尝试了好几种批量插入的方式均已失败告终;现就查到的dataframe类型数据批量插入到clickhouse记录和汇总于此。 2. 配置信息 python 3.12 clickh…

DevOps业务价值流:架构设计最佳实践

系统设计阶段作为需求与研发之间的桥梁,在需求设计阶段的原型设计评审环节,尽管项目组人员可能未完全到齐,但关键角色必须到位,包括技术组长和测试组长。这一安排旨在同步推进两项核心任务:一是完成系统的架构设计&…

强化学习之课程学习法

作者名片 🤵‍♂️ 个人主页:抱抱宝 😄微信公众号:宝宝数模AI ✍🏻作者简介:阿里云专家博主 | 持续分享机器学习、数学建模、数据分析、AI人工智能领域相关知识,和大家一起进步! &am…

计算机网络:网络层 —— 网络地址转换 NAT

文章目录 网络地址转换 NAT 概述最基本的 NAT 方法NAT 转换表的作用 网络地址与端口号转换 NAPTNAT 和 NAPT 的缺陷 网络地址转换 NAT 概述 尽管因特网采用了无分类编址方法来减缓 IPv4 地址空间耗尽的速度,但由于因特网用户数量的急剧增长,特别是大量小…

leetcode 633. 平方数之和 中等

给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a*ab*bc 。 示例 1: 输入:c 5 输出:true 解释:1 * 1 2 * 2 5示例 2: 输入:c 3 输出:false提示&#…

Qt第三课 ----------容器类控件

作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 ​🎂 作者介绍: 🎂🎂 🎂 🎉🎉&#x1f389…

运放进阶篇-多种波形可调信号发生器-产生方波-三角波-正弦波

引言:前几节我们已经说到硬件相关基础的电路,以及对于运放也讲到了初步的理解,特别是比较器的部分,但是放大器的部分我们对此并没有阐述,在这里通过实例进行理论结合实践的学习。而运放真正的核心,其实就是…

蓝桥杯c++算法学习【1】之枚举与模拟(卡片、回文日期、赢球票:::非常典型的比刷例题!!!)

别忘了请点个赞收藏关注支持一下博主喵!!! 关注博主,更多蓝桥杯nice题目静待更新:) 枚举与模拟 一、卡片: 【问题描述】 …

使用Netty实现一个简单的聊天服务器

✅作者简介:热爱Java后端开发的一名学习者,大家可以跟我一起讨论各种问题喔。 🍎个人主页:Hhzzy99 🍊个人信条:坚持就是胜利! 💞当前专栏:Netty 🥭本文内容&a…

用discuz开发一款网站自动秒收录源码功能更强悍更安全

用discuz开发一款网站自动秒收录源码功能更强悍更安全 在当今数字化时代,网站的曝光率和访问量是衡量其成功与否的重要指标。为了提升网站的曝光率,自动秒收录技术应运而生。而Discuz平台作为知名的社区管理系统,为开发者提供了丰富的功能和…