gpt4 book ai didi

java - 如何将 POJO 添加到 Spring 上下文以启用注入(inject)依赖项?

转载 作者:行者123 更新时间:2023-11-30 08:33:40 25 4
gpt4 key购买 nike

我有一个类,否则它会是一个非常通用的 POJO,但我想在其中注入(inject)一个依赖项,因为我想避免将该依赖项作为(构造函数)参数传递:

//no managed context annotation because it's a simple POJO
public class QueuedBatch {

//however, I would like to inject the context managed bean below
@Autowired
AsyncActionQueue asyncActionQueue;

目前,在部署时没有抛出异常,但 asyncActionQueue 在运行时为 null,所以当我点击 POJO 时我得到一个 NullPointer

如何注释我的 POJO 以将其添加到 Spring 管理的上下文中,以便我可以将依赖项注入(inject)其中? AsyncActionQueue 是一个单例,我宁愿不将它作为(构造函数)参数传递给 QueuedBatch

This post类似,只是我想将我的 POJO 添加到托管上下文中。

最佳答案

正如评论所建议的那样,您有两种处理方法

  1. 将 AsyncActionQueue 作为参数传递到 QueuedBatch 的构造函数中。这不需要 Spring 了解有关 QueuedBatch 的任何信息,但会强制在创建 QueuedBatch 实例时提供依赖关系。

  2. 使用@Component 注释QueuedBatch 类。并确保在初始化 spring 上下文时,包含 QueuedBatch 的包被包含在组件扫描中。通过这种方式,它成为一个 spring 托管 bean,允许 AsyncActionQueue Autowiring 到其中。您可以根据需要更改 QueuedBatch 组件的范围。

关于java - 如何将 POJO 添加到 Spring 上下文以启用注入(inject)依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39353019/

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