gpt4 book ai didi

java - 注入(inject)不适用于新的运算符(operator)

转载 作者:搜寻专家 更新时间:2023-10-31 08:27:00 25 4
gpt4 key购买 nike

谁能解释为什么 @Inject 对象在使用 new 运算符初始化类时为空?

public class A{
@Inject
B b;
...
...
}

当上面的类被创建为 A a = new A(); 时,我得到 b 作为 null。谁能解释为什么?我知道它在我注入(inject) A 类时有效。但我想知道为什么它不适用于 new 运算符。 Spring 有什么作用?

最佳答案

依赖注入(inject)由 spring 容器处理,因此只有容器创建的对象才会受到依赖注入(inject)

在这种情况下,您正在使用 new 运算符手动创建对象,spring 容器将不知道对象的创建。

一个可能的解决方案是使用 @Configurable 注释(和 AspectJ)来解决这个问题,如 documentation 中给出的那样

另请查看 this answer

关于java - 注入(inject)不适用于新的运算符(operator),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17162836/

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