【问题标题】:How can implement an Interface from a Remote stateless session bean?如何从远程无状态会话 bean 实现接口?
【发布时间】:2012-06-24 01:13:55
【问题描述】:

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

谢谢!

【问题讨论】:

    标签: java jakarta-ee netbeans glassfish-3


    【解决方案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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多