0
我有一個場景,其中有一個Utility類是Singleton,我需要將其注入另一個在類級別沒有任何註釋的類。將類注入到其實例手動創建的類
我該如何將它注入到這個類中?
@EJB或@Inject不起作用,因爲我正在使用@ EJB/@Inject的類使用getInstance()方法創建。
我有一個場景,其中有一個Utility類是Singleton,我需要將其注入另一個在類級別沒有任何註釋的類。將類注入到其實例手動創建的類
我該如何將它注入到這個類中?
@EJB或@Inject不起作用,因爲我正在使用@ EJB/@Inject的類使用getInstance()方法創建。
您不能在POJO中使用@Inject或@EJB,但可以進行經典的本地查找。
例如假設該EJB實現本地接口IServiceBeanLocal,其中包含您所感興趣的方法:
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class Utility {
private static IServiceBeanLocal service;
try {
InitialContext ic = new InitialContext();
service = (IServiceBeanLocal) ic.lookup(ejbJndiName);
// or simply
// service = (IServiceBeanLocal) InitialContext.doLookup(ejbJndiName);
service.method(); // invoke the desired method
} catch (NamingException e) {
logger.error("Lookup exception:", e);
}
}
ejbJndiName取決於你的EJB的包裝上,但必須是這樣的:
java:global/app_name/module_name/EJBClass!com.local.interface.path.IServiceBeanLocal
希望它有幫助。
你能否用你想要完成的代碼更新你的問題? – aribeiro
你使用什麼容器和版本?如果CDI 1.2,您可以使用CDI工具類以編程方式查找引用。 –
我正在使用Jboss EAP 6 –