问题标签 [service-layer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
706 浏览

c# - ObjectDataSource - 您的加载方法可以驻留在与实体不同的类中吗?

我有以下班级模型:

我通过将 ObjectDataSource (ODS) 绑定到 GridView 来在 ASP.Net 网页上显示数据。

如果我指向“ODS.TypeName = PersonService”,那么它会给出“对象与目标类型不匹配”。加载数据时出错。

如果我指向“ODS.TypeName = Person”,那么它找不到加载数据的 GetAll() 方法。

是否可以将 ODS 绑定到此模型(即方法和类型的单独类)?

编辑:我已经仔细检查了 Type 和 Select 方法名称是否正确(并且完全合格)。我做了一个单独的快速测试项目来证明 ODS 可以与上述模型配合使用——它确实有效。现在唯一的区别是,损坏的项目使用的是 EF 4.1 定义的实体——这会导致问题吗?

0 投票
2 回答
14375 浏览

spring - 如何使用@EJB、@PersistenceContext、@Inject、@Autowired 注入@FacesValidator

如何在 a 中注入像@EJB, @PersistenceContext, @Inject,@AutoWired等这样的依赖项@FacesValidator?在我的特定情况下,我需要通过以下方式注入 Spring 托管 bean @AutoWired

但是,它没有被注入,它仍然存在null,导致java.lang.NullPointerException. 似乎@EJB@PersistenceContext并且@Inject也不起作用。

如何在我的验证器中注入服务依赖项以便我可以访问数据库?

0 投票
1 回答
479 浏览

c# - IService 扩展了 IRepository 正确吗?

说我的 IService 拥有 IRepository 所拥有的一切,以及更多一些具体的操作是正确的吗?

以下是代码:

请注意,中的所有操作IRepository也是IService.

这个对吗?

如果是这样,最好做这样的事情:

另一种选择是:

请注意,我将存储库作为一个属性,并在我的服务类中公开这个属性。

因此,如果您需要在存储库中添加、删除或获取某些对象,我可以通过此属性访问它。

你有什么意见?这样做是否正确?

0 投票
1 回答
15235 浏览

asp.net-mvc - 服务层与业务层 - 区别?

我一直在阅读有关服务层和业务层以及它们如何比较的大量资料。我在 StackOverflow 上阅读了有关该主题的许多线程,但我仍然对两者之间的差异感到困惑(如果有的话)。在我看来,它主要是一种命名约定,其中一个开发人员将中间层称为业务层,而另一个可能将其称为服务层。从我在 SO 和 web 上看到的代码来看,它们似乎主要做同样的事情 - 即查询存储库,可能进行一些过滤和/或验证并将结果返回到表示层。那么有人可以澄清两者之间的区别吗?还是我在评估中错过了分数?

我正在使用 EF、MVC 3 和 VBNET,仅供参考

0 投票
1 回答
584 浏览

asp.net-mvc-3 - 使用服务层模式时,Visual Studio 2010 解决方案是否有文件夹布局约定?

我想为我的 ASP.NET MVC 3 应用程序使用服务层模式(如Martin Fowler 的网站所述)。

我的目标是通过在深入研究代码之前为其设置适当的框架来设置解决方案结构,以便我更轻松地学习该模式。

谁能告诉我在 Visual Studio 2010 解决方案中布局解决方案、项目和文件夹的传统方式?

0 投票
3 回答
6760 浏览

hibernate - EntityManager 应该如何在一个很好的解耦的服务层和数据访问层中使用?

与我的其他问题有点相关应该从数据访问层或接口返回原始的 Hibernate 注释 POJO 吗?,我在创建良好解耦的层方面经验丰富,但不使用 Hibernate 或 J2EE/JPA。我一直在查看文档和教程,对如何以优雅的方式使用 EntityManger 感到困惑,因为它似乎负责事务(我想在我的服务层执行)和持久性方法(我想要保存在数据访问层中)。我应该在服务层创建它并将其注入数据访问层,还是有更好的方法?下面的伪java大致显示了我正在考虑做的事情。

编辑:我下面的伪代码基本上取自 hibernate JPA 教程并针对层分离进行了修改,并不反映正在开发该产品以在 EJB 容器(Glassfish)中运行。在您的答案中,请提供在 Glassfish 或等效程序中运行的代码的最佳实践和代码示例。

0 投票
1 回答
316 浏览

zend-framework - ZF1-Doctrine2-ServiceLayer

有人可以帮我理解Guilherme Blanco的“ZF1-Doctrine2-ServiceLayer”吗?

我正在尝试使用基本设置来运行它。但是 github 示例对我不起作用(我不得不使用 serviceLocator.ini 中的“服务定位器配置”,而不是“application.ini”,现在它似乎可以正确初始化)。我找不到任何关于如何使用它的说明。可能是愚蠢的问题,但我应该如何在控制器中获得服务?像这样的东西?

我收到异常“无法找到服务'TestService'”。

有人可以提供有关此解决方案的服务逻辑的一些指导吗?非常感谢

0 投票
1 回答
735 浏览

architecture - 我的服务层应该是无状态的吗?

我有一个服务层,例如我的控制器和我的域模型(即:存储库、实体等)之间的关系。

在我的服务中,我有“获取”实体的方法,getArticles但我需要返回数组结果或对象集合。

所以我在我的方法中添加了一个参数getArticles($array = false);(实际上我的服务没有强制转换任何对象,它是由存储库完成的,但我需要向我的 API 提供该选项)

我的服务越来越大,我想知道在我的方法参数中定义它是否是个好主意,我认为这是因为我认为我的服务应该是无状态的,但我想知道它是否不会最好在我的服务中有一个方法,当我的服务代理到它时,它基本上可以setUseArray($flag)使用该标志来提供我的存储库。

同样的想法,如果我使用我的服务返回分页结果,我应该在我的每个方法中设置页面和项目计数,还是应该在我的服务中使用全局方法来做到这一点?

有什么反馈吗?

0 投票
1 回答
684 浏览

asp.net-mvc - ASP.NET MVC - 服务层 <-> 控制器

假设您正在实现自己的 stackoverflow 版本(再次,是的)

您的服务提供了所有必需的功能,如下所示:

这似乎很简单,通常我认为这是一个好主意。我在这里唯一不喜欢的是客户端代码(ASP.NET MVC 控制器)可以直接访问Questions 和Answers。假装我们有一些与发布问题和答案有关的强硬 BL。将这个逻辑集中在一个“单一的地方”——在服务层上是个好主意。如果您的客户端代码可以访问Questions,那么有一天有人可能会决定向您的一个控制器添加“只是一点点逻辑”,这基本上是个坏主意。

我正在考虑定义一些 DTO,它们将成为服务接口的一部分,因此客户端代码将只能使用这些包含“恰到好处的细节”的 DTO。

假设您的问题实体定义如下:

发布问题时,请求应仅包含Title,TextPoster。所以,我将定义一个PostQuestionDTO

当有人打开页面检查问题时,会有更多详细信息,例如PostedEdited

等等。这是一个好的做法还是你认为它过度设计?这里的常用方法是什么?

0 投票
3 回答
20816 浏览

design-patterns - Doctrine2 存储库是保存我的实体的好地方吗?

当我阅读有关存储库的文档时,通常以“只读”方式使用实体和集合。

从来没有示例存储库具有类似insertUser(User $user)or的方法updateUser(User $user)

但是,在使用 SOA 时,Service 不应该与 Entity Manager 一起使用(没错,不是吗?)所以:

  1. 我的服务应该知道全局 EntityManager 吗?
  2. 我的服务是否应该只知道使用的存储库(比如说,UserRepository 和 ArticleRepository)

从这两个问题,另一个问题,我的服务是否应该明确persist()flush()我的实体?