You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何停止重复打印JSR-330 'javax.inject.Inject'自动装配支持日志?

解决Spring应用重复打印JSR-330注入日志的方法

核心原因

该日志由Spring的AutowiredAnnotationBeanPostProcessor类输出,当它检测到JSR-330的@Inject注解时会打印INFO级提示,而你的应用中每次HTTP请求都会触发Bean的创建/初始化流程,导致日志重复生成。

具体解决步骤

方法1:调整日志级别(推荐)

修改日志配置文件(如log4j.properties、logback.xml),将org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor的日志级别从INFO上调至WARN或ERROR,直接屏蔽这类重复提示。

Log4j 1.x 配置示例

log4j.logger.org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor=WARN

Logback 配置示例

<logger name="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor" level="WARN" />

方法2:禁用JSR-330注解支持(谨慎使用)

若你的应用完全不需要使用@Inject注解,可以通过Spring配置显式关闭该注解的自动装配检测:

<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor">
    <property name="injectAnnotationType" value="java.lang.Object"/>
</bean>

注意:此操作会让Spring不再识别@Inject注解,若代码中存在该注解的使用,会导致依赖注入失败,仅确认无相关依赖时使用。

方法3:优化Bean作用域(根源优化)

日志按HTTP请求线程打印,说明每次请求都会生成新的Bean实例。若对应Bean为无状态类型,建议将其作用域从prototype改为Spring默认的singleton,减少重复初始化操作:

<bean id="yourTargetBean" class="com.yourpackage.YourBeanClass" scope="singleton"/>

内容的提问来源于stack exchange,提问作者Jayanta Pramanik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 05:16:08