在CDI中,您可以使用以下命令定义一个对象,该对象将为您提供特定类型的项目:
@Inject Instance<MyObject> myObjectInstance; //... MyObject myObjectInstance.get();
同样在Guice中你可以做到:
@Inject Provider<MyObject> myObjectInstance; //... MyObject myObjectInstance.get();
我想知道Spring中是否有类似的构造,或者你必须使用它ApplicationContext才能获得引用?
我是CDI的新手,曾试图找到此问题的解决方案,但没有发现任何问题。问题是,假设我有一个正在注入的类(A),正在注入一些值(toPass),现在我想将此相同的值(toPass)传递给B类,而B类是从A类注入的。
public class A
{
String toPass = "abcd"; // This value is not hardcoded
@Inject
private B b;
}
public class B
{
private String toPass;
public B(String toPass)
{
toPass = toPass;
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮我吗?注意:我们无法以与在A中初始化相同的方式来初始化B的toPass变量,对此有一些限制。基本上在春季,我们可以轻松做到这一点,但我想在CDI中完成。