Entity Bean的依赖注入- -
entity bean本身是一个轻量级的领域对象。它的生命周期开始时,是由使用者将它new出来,并填充初始数据,然后调用EntityManager.create()方法持久化到数据库。然而,这一阶段之后,使用者再次接触到的就是一个拥有了全部EJB context的entity bean。entity bean同样可以要求容器进行依赖注入,这对于实现Domain Model模式来说是太有利了:把EntityManager注入entity bean,那是一个典型的Database Mapper,entity bean不需要从任何另外的途径去获得它,实现业务逻辑时可以随便调用一下持久化操作,又不会污染接口。单从这一点来说,entity bean就比Hibernate要来得好用。
比如,这样的一个entity bean:
@Entity public class User {
@Inject protected EntityManager _em;
public boolean isValid(String loginName, String password) {
// 这里不仅检查用户名密码,还调用_em做一些别的持久化操作
}
}
多么清晰而自然的Domain Model模式。