gpt4 book ai didi

java - 依赖注入(inject)...基本基本(新实例时不注入(inject))

转载 作者:行者123 更新时间:2023-11-30 03:34:11 24 4
gpt4 key购买 nike

当我通过

创建一个新实例时
MyObject obj = new MyObject();

注入(inject)永远不会发生。

MyObject 的示例源可能是...

@Stateless
public class MyObject{

@Inject
Injection inj;

public MyObject() {
}
...
}

注入(inject)只能在注入(inject)的对象中起作用吗?当我显式创建新实例时,是否无法使用注入(inject)?

我想创建一个动态创建实例的类菜单(使用反射...反射不是问题...我已经尝试使用 new 语法)。

我不想在我的菜单或主类中注入(inject)每个 View 类。

最佳答案

注入(inject)仅适用于容器控制其生命周期的对象。如果您只是创建新对象,容器如何知道该对象已被创建。

通常问题的解决方案是以下之一:

  • 不是自己创建对象,而是向容器询问对象。尽管在组合物根部之外使用容器是您应该避免的气味。
  • 自己创建对象并手动注入(inject)依赖项。这要求创建新对象的对象能够访问它将要创建的对象在创建时可用的所有依赖项。这可能是不可取的,所以你可以改为
  • 将创建委托(delegate)给工厂类。该类采用创建对象所需的所有依赖项,而您当前“新建”对象的类仅对工厂有一个依赖项。

关于java - 依赖注入(inject)...基本基本(新实例时不注入(inject)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28367329/

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