我有一个带有 Producer 方法的 Singleton EJB。
@javax.ejb.Singleton
public class MyBean{
private Something something;
@Produces
public MySomething getSomething() {
if(null == something){
LOG.info("Initializing MySomething.");
something = new Something();
}
return something;
}
}
我以为这会锁定,但我"Initializing MySomething."
在日志中多次看到这个,然后Something 抛出一个java.lang.StackOverflowError
.
所以看起来我需要锁定这个@Produces
方法。
java.util.concurrent.Semaphore
可以为此目的使用 a吗?