我有一个关于ejb @Singleton的问题,因为我有一些设计要求,我需要在标准pojo中访问容器管理资源。
这就是我在做什么,只是想看看你对此的看法,以及是否有任何副作用。
1. have a @Singleton bean managed by jboss container.
Example:
@Singleton'
@Startup
public class ResourceInjector(){
@EJB
private DAO dao1;
@EJB
private DAO dao2;
@EJB
private otherStatelessEjb;
}
通过getInstance方法访问上述ResourceInjector,以便在容器内进行调用
示例:
@Singleton
@Startup
public class ResourceInjector(){
@EJB
private DAO dao1;
@EJB
private DAO dao2;
@EJB
private otherStatelessEjb;
private ResourceInjector INSTANCE;
public ResourceInjector(){
ResourceInjector.INSTANCE=this
}
public static ResourceInjector getInstance(){ return ResourceInjector .INSTANCE; }
public DAO getSomeDao(){ 返回一些托管dao的引用 }
}
现在:
MyNormalPojo pojo = new MyNormalPojo();
pojo.setSomeDao(ResourceInjector.getInstance().getSomeDao());
主要问题是在ResourceInjector上引入静态getInstance()方法是关于EJB规范和EJB行为的问题吗?