在doFilter方法中无法注入set方法 解决办法

Java中SQL注入过滤器的实现与部署 Java过滤器(Filter)是Java Servlet API中定义的一个组件,用于在请求到达Servlet之前或响应从Servlet发出后,对它们进行拦截和处理。过滤器可以对请求和响应对象进行操作,执行诸如数据转换、权限检查、日志记录等任务,以确保Web应用的安全性、性能和兼容性。过滤器的生命周期分为以下几个阶段:初始化(init):这是过滤器生命周期的开始阶段。在这个阶段,Web容器会创建过滤器实例,并调用其init方法。init方法中通常接收一个。 阅读详情

今天在使用doFilter时,测试了十几次就是无法获取newsService对象,总是报newsService为null, 经过网上查询相关资料之后发现在普通的java中,只要声明(set,get方法)后在spring-application配置文件中配置就可以了,但是由于Filter与Listener需要配置在web.xml文件中,所以它们的对象是由容器创建的。通常在Spring的application-context.xml配置文件中编写的bean由Spring负责创建,所以直接在Spring配置文件配置过滤器与监听器是无法达到注入目的的。

 可以使用如下方法,例:

public class ValidateWeixinController extends BaseController implements Filter {

private NewsService newsService;
private InfoService infoService;
private StadiumService stadiumService;

public NewsService getNewsService() {
return newsService;
}

public void setNewsService(NewsService newsService) {
this.newsService = newsService;
}

public InfoService getInfoService() {
return infoService;
}

public void setInfoService(InfoService infoService) {
this.infoService = infoService;
}

public StadiumService getStadiumService() {
return stadiumService;
}

public void setStadiumService(StadiumService stadiumService) {
this.stadiumService = stadiumService;
}

@Override
public void init(FilterConfig config) throws ServletException {
System.out.println("ValidateWeixinController启动成功!");
ServletContext context = config.getServletContext();
ApplicationContext ac = WebApplicationContextUtils.getWebApplicationContext(context);
newsService = (NewsService) ac.getBean("newsService");
infoService = (InfoService) ac.getBean("infoService");
stadiumService =  (StadiumService) ac.getBean("stadiumService");

}

......

}

Qwen-Image LoRA训练实战:从数据准备到异常修复的全流程解析 本文详细解析了Qwen-Image LoRA训练的全流程,从数据准备到参数优化再到异常修复。通过实战案例展示了如何利用LoRA技术微调Qwen-Image模型,提升中文场景下的图像生成质量,特别针对手脚生成异常等问题提供了有效解决方案。文章还分享了中文提示词优化技巧和高级训练方法,帮助开发者高效训练出高质量的LoRA模型。 阅读详情

相关推荐

Java课程设计——扫雷游戏程序

使用Java语言对扫雷游戏的复刻

m0_60671275的博客 3501

关于过滤了请求验证之后,请求不会再走Controller层了

关于过滤了请求验证之后,请求不会再走Controller层了 起因: 在过滤器拦截某个请求(例如:"/getUser")之后,发现请求突然就消失了,通过debug也看不出什么问题 解决 最后发现经过验证之后的过滤器需要再一次执行一下个过滤器,即使没有下一个过滤器,要不然就会消失 对过滤器进行放行 @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse resp

weixin_42947972的博客 1302

基于51单片机的校园一卡通系统(仿真)

本次设计利用LCD1604设计可视化界面,矩阵按键执行交互,继电器模拟门的开关,系统集成考勤系统、门禁系统、消费系统、充值系统。同时利用LED灯、蜂鸣器进行指示,方便用户查看状态。

MGT_9796的博客 1555

Springboot应用中过滤器chain.doFilter后设置header无效&filterChain.doFilter后使用response对象引起的问题&Filter过滤器执行流程

本文是在使用过滤器添加动态header过程中遇到设置header无效,经过研究源码而产生。因为特殊需求,自定义的header必须在经过Controller处理之后,才能确定,所以不能在请求处理之前设置,必须在请求处理之后。于是出现了这个坑。

qq_43842093的博客 2057

树莓派驱动DLPDLCR230NPEVM+framebuffer显示图片

DLPDLCR230NPEVM DLP® LightCrafter™ Display 230NP 是一个易于使用的紧凑型即插即用评估平台,适用于消费类产品、工业、医疗和物联网 (IoT) 市场中的各种超便携显示应用。此评估模块 (EVM) 采用 DLP230NP 芯片组,该芯片组由DLP230NP.23 1080p DMD、DLPC3436显示控制器和DLPA2005PMIC/LED 驱动器组成。此 EVM 外形小巧,配备生产就绪型光学引擎以及支持 18 位 RGB 并行视频接口...

L_Y000的博客 2620

基于STM32的超声波流量计设计

本项目基于STM32微控制器设计了一种超声波流量计,采用时间差法测量液体或气体的流速,计算流量并通过显示屏实时显示,同时支持远程数据传输。本设计通过STM32微控制器实现了基于时间差法的超声波流量计,集成了超声波信号采集、流量计算、状态显示和远程通信功能。本系统需要实现超声波信号的实时采集与处理,计算流速和流量,并将数据通过OLED显示和无线模块上传。系统需具备高精度的时间测量能力和良好的抗干扰能力。通过计算超声波在顺流和逆流方向上的传播时间差,结合管道直径与流体特性,计算流速并进一步计算流量。

stm32d1219的博客 2350

springboot 使用过滤器解决跨域问题和无法获取到 header 中值的问题

/** * 解决跨域问题 */ public class AccessControlAllowOriginFilter implements Filter { public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletResponse response = (HttpSer.

wxw1997a的博客 4195

stackelberg博弈_博弈论、多智能体、强化学习(随便记点东西)

多智能体应用场景:已实现:游戏AI。正在努力:UAV,物资运输,快递分发,交通系统。未来:社会学,预测群体行为,城市区域合作,国际关系。博弈论基本定义:玩家集合: 策略集合: 收益函数: 囚徒困境:两智能体矩阵博弈坦白抵赖坦白1,13,0抵赖0,32,2占优策略与最佳应对:上表中两者均具有占优策略,即无论如何都应该选坦白。那么构造下表。坦白抵赖坦白1,13,0抵赖0,12,2对于玩家一来说,坦白...

weixin_39611722的博客 3000

SpringBoot中@WebFilter导致@ControllerAdvice失效原因之一(个人笔记非教程)

@Override protected void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException,ShopException { response.setHeader("Content-Type", "application/json;charset=UTF-8"); ..

qq_44408123的博客 373

保研考研机试攻略:python笔记(4)

保研考研机试攻略:python笔记(4)二分法+最大公约数+最小公倍数+素数判断+幂次方mod方法+匹配问题+哈希算法+哈夫曼编码+二叉树

qq_63349644的博客 1097

在Ubuntu上安装Node.js编程

在Ubuntu操作系统上安装Node.js是非常简单的,本文将为您提供详细的安装步骤。这是一个简单的Node.js HTTP服务器示例,它将在本地主机的端口3000上监听请求,并返回"Hello, World!npm是Node.js的包管理器,您可以使用它来安装和管理Node.js模块。您已成功在Ubuntu上安装了Node.js,并创建并运行了一个简单的Node.js应用程序。现在,您已经成功安装了Node.js和npm,让我们创建一个简单的Node.js应用程序并运行它。如有任何疑问,请随时提问。

CodeNexus的博客 3524

filter重定向时报错

public void doFilter(ServletRequest request, ServletResponse response,                         FilterChain chain) throws IOException, ServletException {  if (debug) log("AuthenticationFilter:doFilter(

Coded Dream 3666

【YOLOv8改进-损失函数】 YOLOv8自带损失函数CIoU / DIoU / GIoU 详解,以及如何切换损失函数

在介绍YOLOv8中的各种Iou之前,我们先来了解了解目标检测中的损失函数。目标检测模型通常包含两类损失函数:类别损失(分类)和位置损失(回归)。这两类损失函数用于检测模型的最后一部分,根据模型的输出(类别和位置)以及实际标注框(类别和位置),分别计算类别损失和位置损失。

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 5191

项目打包成功,但是放入tomcat运行失败,原因有可能是Filter过滤器注入bean实例时注入失败为null

原因: 在Spring的自动注入中普通的POJO类都可以使用@Autowired进行自动注入,但是除了两类:Filter和Servlet无法使用自动注入属性。(因为这两个归tomcat容器管理)可以用init(集承自HttpServlet后重写init方法)方法中实例化对象。 注意:使用Tomcat war运行才会报这个错,SpringBoot jar运行不影响哦 其实Spring中,web...

这生命是人的光的博客 1013

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

关于Filter无法注入bean问题的解决方案

Filter注入spring管理的bean,解决方案

大力水手 997

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

java类继承了Filter后,Service无法注入问题剖析

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33770878的博客 399

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

解决:Filter过滤器无法自动注入问题

注入 @Autowired ManageService manageService; 在doFilter()中添加如下代码 // 获取容器,完成注入 HttpServletRequest request = (HttpServletRequest) servletRequest; ServletContext sc = request.getSession().getServletContext(); XmlWebApplicationContext cxt = (XmlWebApplicationCon

欢迎来到王大神的博客 1165

filter过滤器使用Autowired注入Bean为null

需求场景:在登录过滤器中需要使用配置文件的参数值,使用Autowired注入配置类一直为null,但在controller层使用注入是能取到值得。就猜想是否是执行顺序的问题。 Bug原因:web应用启动的顺序是:listener->filter->servlet Bug解决: ①:在init方法中使用filterConfig参数。 ServletContext contex...

weixin_42456466的博客 4444

java 注入service接口_如何在Java Filter 中注入 Service

在项目中遇到一个问题,在 Filter中注入 Serivce失败,注入的service始终为null。如下所示:public class WeiXinFilter implementsFilter{@Autowiredprivate UsersService usersService;public void doFilter(ServletRequest request, ServletRespo...

weixin_30304285的博客 783

如何在Java Filter 中注入 Service

在项目中遇到一个问题,在 Filter中注入 Serivce失败,注入的service始终为null。如下所示: public class WeiXinFilter implements Filter{ @Autowired private UsersService usersService; public void doFilter(Servlet...

weixin_30852419的博客 296

Spring编程常见错误–Spring Web篇-13 |Spring Web 过滤器使用常见错误(上)

十三、Spring Web 过滤器使用常见错误(上) 过滤器是 Servlet 的重要标准之一,其在请求和响应的统一处理、访问日志记录、请求权限审核等方面都有着不可替代的作用。在 Spring 编程中,主要就是配合使用 @ServletComponentScan 和 @WebFilter 这两个注解来构建过滤器。 一.@WebFilter 过滤器无法被自动注入(特殊的Bean对象无法像普通Bean一样被自动注入) 1、代码分析 1.Filter @WebFilter @Slf4j public class

好好学习天天向上 557

SQL注入漏洞-Java 解决方法(一)过滤器

这个是常见的漏洞了,相信大家都不会陌生,直接上解决该漏洞的代码 package com.ifan.soft.filter; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; impor.

Zxdwr520的博客 3259

Java filter调用service的方法

版权声明:本文为博主原创文章,未经博主允许不得转载。       今天在项目中遇到了一个问题,在 Filter中注入 Serivce失败,注入的service始终为null。经过一番分析后,问题得到了解决。现在给大家分享一下。以下代码展示区域只展示了部分关键代码。 1、报控制针的代码如下所示: public class SessionFi...

qq_27512271的博客 4717

[过滤器Filter]在过滤器Filter的初始化方法中获取bean

过滤器的加载时间: 过滤器是在程序启动的时候加载的,且仅加载init()方法,当url-pattern过滤的请求被过滤时,仅执行doFilter();当程序关闭时,执行destroy()方法。 如何在init()方法中获取bean: 需求:由于所做的业务需要在init()方法中初始化bean,而此时bean无法通过@Autowired注入(注入值为null); 解决:通过FilterConfig对象获取到ApplicationContext对象,根据ApplicationContext对象获取到对应的be

weixin_43303530的博客 1119

在Filter中注入service

在Filter中注入service private static ApplicationContext ctx = new ClassPathXmlApplicationContext( new String[] {"classpath:/spring/applicationContext.xml"}); //获取Service UserServ...

小白有点黑丶的博客 1322

Day613.SpringWebFilter常见错误① -Spring编程常见错误

SpringWebFilter常见错误① 在SpringWeb开发中,Filter必然是一个十分重要的角色。 他可以对于一个请求进行鉴权、日志等操作。 那如下记录了你可能在Filter编程中会出现的常见错误。 一、@WebFilter 过滤器无法被自动注入 我们为一个系统定义一个Filter,其功能为了统计接口耗时代码如下: @WebFilter @Slf4j public class TimeCostFilter implements Filter { public TimeCostFilter

阿昌爱Java 1035
上一篇: The type org.xmlpull.v1.XmlPullParser cannot be resolved.
下一篇: mysqldump: Got error: 2003: Can't connect to MySQL server on '127.0.0.1' (10061)
dw_java08
博客等级 码龄15年 122粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值