gpt4 book ai didi

java - 无法在日志附加程序中 Autowiring spring bean

转载 作者:行者123 更新时间:2023-11-30 10:16:37 25 4
gpt4 key购买 nike

我正在尝试在我创建的附加程序下 Autowiring SQSFIFOJavaClient。我打印出在 Spring Boot 主类中定义的 bean 名称,我能够看到定义的 SQSFIFOJavaClient bean。但是,该 bean 未在下面列出的类中 Autowiring 。 SQSAppender 和 SQSFIFOJavaClient 都在不同的包中,但在添加到 component-scan 的相同基础包下。你能告诉我这里缺少什么吗?

@Component
@DependsOn("SQSFIFOJavaClient")
public class SQSAppender extends AppenderBase<ILoggingEvent> {

@Autowired
private SQSFIFOJavaClient sqsClient;

我也尝试添加 DependsOn 注释,但 sqsClient 仍然显示为 null。

最佳答案

Log4j2 将通过调用 @PluginFactory 注释方法(根据 this answer)创建一个 appender。您的 appender 可能不是作为 Spring bean 在那里创建的,很可能 new SQSAppender(...) 被调用,并且 @Autowired 未被处理。

可以在 org.springframework.amqp.rabbit.log4j2.AmqpAppender 中找到如何实现 Spring 管理的 Log4j2 appender 的示例。 .

关于java - 无法在日志附加程序中 Autowiring spring bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49987445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com