当我阅读有关存储库的文档时,通常是以“只读”方式处理实体和集合。 从来没有例子存储库有像insertUser(User $user)或updateUser(User $user) 。 但是,在使用SOA时,服务不应该与实体pipe理器一起工作(是的,不是吗?),所以: 我的服务应该知道全局的EntityManager吗? 如果我的服务只知道使用的存储库(比方说,UserRepository和ArticleRepository) 从这两个问题,另一个问题,我的服务应该明确地persist()和flush()我的实体?
我知道这可能听起来很愚蠢,但我发现很难理解服务层的需求及其与业务层的差异。 所以,我们使用的是asp.net mvc 2,并且有数据访问层,它可以完成数据库的全部查询,然后我们有业务层需要完成业务逻辑和validation。 最后我们有了基本上具有所有视图的表示层。 另外我们也有一些帮助器,DTO和viewmodel类作为我们库的一部分放在不同的文件夹中。 但是我已经尝试了解架构,看起来服务层是架构的重要组成部分。 我所知道的是服务层是调用所有function的东西。 但是我真的不能在我们的应用程序中看到服务层的需求吗? 或者它可能已经在那里,我不能看到它…任何人都可以解释一个例子如何服务层是重要的? 它与业务层有什么不同,因为从我看过的东西看起来很相似? 如果它在第一需要呢? 我们所要做的就是以最好的方式构build我们的应用程序,您的想法和经验是什么?
假设你有一个ASP.NET MVC项目并且正在使用一个服务层,比如在asp.net网站的这个联系人pipe理器教程中: http : //www.asp.net/mvc/tutorials/iteration-4-make-的应用程序,松散耦合-CS 如果您的视图有视图模型,服务层是否提供每个视图模型的适当位置? 例如,在服务层代码示例中有一个方法 public IEnumerable<Contact> ListContacts() { return _repository.ListContacts(); } 如果你想要一个IEnumerable,它应该在服务层,还是有其他地方是“正确”的地方? 也许更恰当的是,如果你为每个与ContactController关联的视图有一个单独的视图模型,那么ContactManagerService应该有一个单独的方法来返回每个视图模型? 如果服务层不适合,控制器应该在哪里初始化viewmodel对象?
我使用JSF标记<f:event维护了一个包含页面的Web应用程序。 我已经重写了一个服务类中的方法,以引发业务exception。 但是,在引发业务exception时,不会在托pipebean中捕获,并在页面上显示exception。 似乎我的代码try/catch不起作用。 在XHTML中: <f:event listener="#{resourceBean.init(enrollment)}" type="preRenderView" /> Managed Bean中的监听器方法: private boolean canCreateResource; public void init(Enrollment enrollment) { (…) try { canCreateResource = resourceService.canCreateResource(enrollment); } catch (BusinessException e) { canCreateResource = false; } } 服务类中的方法: public boolean canCreateResource(Enrollment enrollment) { if (…) { if (mandateService.isCoordinator(user, course)) { return true; } else { throw new […]
在OOPdevise模式中,存储库模式和服务层之间有什么区别? 我正在研究一个ASP.NET MVC 3应用程序,并试图了解这些devise模式,但我的大脑只是没有得到它…但!
我不确定我在JSF中使用MVC环境的方法是否是最好的方法。 既然我正在试图从JSF中获得最大的收益,我想知道我的服务层(或者说模型,用MVC术语讲)应该如何devise。 我知道视图控制器的比例应该是1比1(例外排除)。 现在我应该以什么方式devise我的服务层? 我应该使用一个大服务(不这么认为)吗? 如果没有,基于我应该分割我的服务? 请注意,我的服务将从Bean(MVC中的控制器)中调用,服务本身将在必要时使用JPA调用DAO。 提前致谢
JSF2 + Spring + EJB3的混合使用或者这些的任意组合,我有点困惑。 我知道Spring的一个主要特性是dependency injection,但是使用JSF托pipe的bean,我可以使用@ManagedBean和@ManagedProperty并获得dependency injectionfunction。 有了EJB3,我更加困惑的是什么时候将它与JSF一起使用,或者甚至有什么理由使用它。 那么,在什么样的情况下使用Spring + JSF2或者EJB3 + JSF2会是一个好主意呢? 到目前为止,我只使用JSF2创build了一些小型的Web应用程序,而不需要使用Spring或EJB3。 不过,我在很多地方都看到人们在一起工作。