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

Java 如何从远程无状态会话bean实现接口?,java,jakarta-ee,netbeans,glassfish-3,Java,Jakarta Ee,Netbeans,Glassfish 3,我正在编写一个项目,并试图应用多层体系结构。 现在我有两个EJB,业务和持久性以及一个共享jar。由于功能要求,持久性必须是可替换的。我制作了一个名为IPersistence的接口。 然后,我在持久性EJB中装入一个名为“持久性”的远程会话bean,并将远程接口放入共享库中。现在,我需要打电话给一个企业注射的iPersience。我该怎么做?也许整个想法都错了。我需要一些建议 谢谢 这里是一个简单的示例,其中您有一个car存储库/DAO,它通过不公开持久性是否存储在数据库、文件、XML等中来从业

我正在编写一个项目,并试图应用多层体系结构。 现在我有两个EJB,业务和持久性以及一个共享jar。由于功能要求,持久性必须是可替换的。我制作了一个名为IPersistence的接口。 然后,我在持久性EJB中装入一个名为“持久性”的远程会话bean,并将远程接口放入共享库中。现在,我需要打电话给一个企业注射的iPersience。我该怎么做?也许整个想法都错了。我需要一些建议


谢谢

这里是一个简单的示例,其中您有一个car存储库/DAO,它通过不公开持久性是否存储在数据库、文件、XML等中来从业务逻辑中抽象持久性。然后业务类注入一个实例,以便能够(在本例中)保存到数据库中。但是,您可以创建实现CarRepository的其他类,并提供在应用程序中保存数据的其他方法,而无需涉及代码的其他部分

持久层

存储库/DAO的接口

@Local
公共接口承载库{
列出findAllCars();
//许多其他方法
}
存储库(域驱动设计)或数据访问对象

@Stateless
public class CarSqlRepository implements CarRepository {

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

    public List<Car> findAllCars() {

    }

    // Many other methods
}
@无状态
公共类CarSqlRepository实现CarRepository{
@PersistenceContext(unitName=“MyUnit”)
私人实体管理者实体管理者;
公共列表findAllCars(){
}
//许多其他方法
}

服务/业务层

@Stateless
public class CarService {

    @Inject
    private CarRepository carRepository;

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

    // Many other methods
}
@无状态
公营汽车服务{
@注入
私人转托管转托管;
公共列表findAllCars(){
return carRepository.findAllCars();
}
//许多其他方法
}
@Stateless
public class CarService {

    @Inject
    private CarRepository carRepository;

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

    // Many other methods
}