如何从远程无状态会话bean实现接口?

时间:2012-06-23 15:54:29

标签: java java-ee netbeans glassfish-3

我正在编程项目,我试图应用多层架构。 现在我有2个EJB,业务和持久性以及共享jar。由于功能要求,持久性必须是可替换的。我创建了一个名为IPersistence的接口。 然后我在持久性EJB中创建了一个名为“persistence”的远程会话bean,并将远程接口放在共享库中。现在,我需要使用业务注入来调用IPersitence。我怎样才能做到这一点?也许整个想法都是错的。我需要一些建议。

谢谢!

1 个答案:

答案 0 :(得分:1)

这是一个简单的示例,其中有一个汽车存储库/ DAO,它通过不暴露,如果存储在数据库,文件,XML等中,从业务逻辑中抽象出持久性。业务类然后注入一个实例以便能够to - 在这种情况下 - 保存到数据库。但是,您可以创建其他实现CarRepository的类,并提供其他方法来保存应用程序中的数据,而无需触及代码的其他部分。

持久层

存储库/ DAO的接口

@Local
public interface CarRepository {
    List<Car> findAllCars();

    // Many other methods
}

存储库(域驱动设计) 或数据访问对象

@Stateless
public class CarSqlRepository implements CarRepository {

    @PersistenceContext(unitName = "MyUnit")
    private EntityManager entityManager;

    public List<Car> findAllCars() {

    }

    // Many other methods
}

服务/业务层

@Stateless
public class CarService {

    @Inject
    private CarRepository carRepository;

    public List<Car> findAllCars() {
        return carRepository.findAllCars();   
    }

    // Many other methods
}
相关问题