我是EJB中的新手。现在我正在研究EJB 3.0规范。如果我有两个不同的JSF托管Bean喜欢下的:
@ManagedBean
public class CocheBean {
@EJB
private ICochesService cochesService = null;
}
@ManagedBean
public class UsuarioBean {
@EJB
private ICochesService cochesService = null;
}
为cochesService的injecteds实现在两种情况下相同的?我的意思是,对于每个注释,EJB容器回来一个新的对象还是同一个对象?
为什么他们将EJB引用为会话bean?他们是否具有会话范围?它们是否存在直到用户的会话过期?
它说你不必担心无状态EJB是否线程安全,因为容器对每个请求都有一个不同实例的池,但是如果它们是无状态的并且没有多线程只能访问一个ejb的危险,为什么容器会创建一个池而不是一个?
使用JSF托管的bean,如果这个bean是请求或会话作用域,并且因为我们在这个bean中注入了ejbs,它们不能同时被每个用户或每个请求调用一次,对吧?
如何使用JPA注释将事务属性指定给EJB bean方法?
感谢
好的,但如果ejb是无状态的,并且没有多线程访问只有一个无状态ejb的危险,为什么容器创建它们的池而不仅仅是一个? – user3254515 2014-10-07 21:52:37
因为在那种情况下它将是一个单身人士。无状态bean应该有一个明确的目的,所以你可以调用它,它会为你完成它的工作,并且可以被丢弃(例如,考虑DAO)。 – 2014-10-08 08:47:50