【问题标题】:Java - Inject Bean inside methodJava - 在方法中注入 Bean
【发布时间】:2013-09-24 08:57:14
【问题描述】:

我想在我的方法中注入 bean。我有远程方法(Direct Web Remoting),我需要在这个方法中注入一些 bean。我不能在字段声明部分使用@Inject 注释,因为它不起作用。甚至有可能吗?

【问题讨论】:

    标签: java cdi inject dwr


    【解决方案1】:

    使用严格的字节码检测是可能的,但这可能不可行。

    DWR 是否会阻止您使用常规注入?

    【讨论】:

    • “定期注射”是什么意思?我不能这样做:class X { @Inject private MyBean myBean; public void myMethod() { // myBean is null there } }
    • 如果这行不通,那么你就不走运了。即使有办法将 bean 注入到方法中,在这种情况下也行不通。
    • 耻辱我将不得不以某种方式解决这个问题。无论如何感谢您的帮助:)
    【解决方案2】:

    有很多方法可以做这样的事情。你运行什么容器? DWR 似乎还不支持 CDI。

    Apache DeltaSpike 有一种方法可以手动注入 bean。一种方法是这样调用:

    EchoService echoService = BeanProvider.getContextualReference(EchoService.class, false);

    另一个是在运行时丰富实际类。看看BeanManager中的getBeans。

    【讨论】:

    • 谢谢约翰!正如你所说,我使用了 BeanManager,一切正常:)
    • 如果可行,请接受答案 :-) 另外,非常感谢您的支持。很高兴它有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-16
    • 2011-12-05
    • 2016-12-17
    • 2012-01-08
    • 2016-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多