petstore13.1的一点不解

j居然有两个一样的ServiceLocator,一个是web tier,一个是ejb tier,但是我觉得没有必要写两个一样的类啊。公用就可以了啊。

供WEB调用的有cache作用。还是分开清楚,petsore一直有两个方向:WEB和EJB 比较符合它的总体思路吧。

可是ejb的那个也有Cache功能的啊

两个的代码基本一样啊

Singleton模式不能在EJB中使用,WEB那个里面使用了Singleton模式

singleton模式为什么不能在ejb中使用?

因为EJB是跨JVM 跨服务器的,所以有可能EJB在两个JVM中运行,那怎么可能使用Singleton?
http://www.javaworld.com/javaworld/jw-01-2001/jw-0112-singleton.html(When is a singleton not a singleton? )

还是不太明白,虽然文章中说不推荐使用singleton模式在分布式的情况下。而且也指出资源访问地类也不推荐使用,但是对于这点我不是太理解,因为这个并不保存状态,只是提供资源访问而已。