首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >依赖注入..。Basic Basic (新实例时不是注入)

依赖注入..。Basic Basic (新实例时不是注入)
EN

Stack Overflow用户
提问于 2015-02-06 13:54:35
回答 2查看 861关注 0票数 1

当我创建一个新实例时

代码语言:javascript
复制
MyObject obj = new MyObject();

注射永远不会发生。

MyObject的示例源可能是..。

代码语言:javascript
复制
@Stateless
public class MyObject{

    @Inject
    Injection inj;

    public MyObject() {
    }
    ...
}

注射只是在注入的物体中起作用吗?当我显式创建一个新实例时,是否没有使用注入的方法?

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-06 15:22:21

注入将只在容器控制其生命周期的对象中工作。如果您只是在创建新对象,那么容器将如何知道该对象已经创建。

通常,解决问题的方法如下:

  • 不是自己创建对象,而是向容器请求对象。虽然使用容器之外的组合根是一种气味,你应该避免。
  • 自己创建对象并手动注入依赖项。这要求创建新对象的对象能够访问它要创建的对象在创建时可用的所有依赖项。这可能是不可取的,所以你可以代替
  • 将创建委托给工厂类。这个类获取创建对象所需的所有依赖项,而当前为“newing”对象的类只是工厂上的一个依赖项。
票数 2
EN

Stack Overflow用户

发布于 2015-02-06 15:27:56

您需要用@ IoC对类进行注释,以便它被实例化,否则它将永远看不到@Inject。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28367329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档