我有spring cloud项目,每个微服务我都觉得我有很多软件包。我也有模型包女巫包含实体和自定义请求响应对象。
问题1:实体类包名称必须是什么?实体还是模型?
问题2:必须在哪里保存Searchrequest和Searchresponse以及其他请求响应类?在模型包装中,还是我必须创建其他包装?问题3:是否退出了一些用于包装结构的标准? (请给我链接)
答案 0 :(得分:2)
没有特定的标准结构,具体取决于您的需求。
大多数SERVICE包将包含所有具有业务逻辑并与DAO类连接的服务类,Controller将拥有所有其余端点,Model包将包含pojo类。
答案 1 :(得分:2)
数据库表的程序包名称应为实体。
第2季度和第3季度Packaging Structure
希望这会有所帮助,让我知道:)
答案 2 :(得分:1)
没有严格的规则。您必须使用一个易于解释的命名(无需深入了解类的内容即可理解其含义)。 这是微服务,Web应用程序,批处理和任何类型的应用程序的正确选择。
我想我有很多包裹
包的主要作用是以易于理解的方式对事物进行排序。
例如,如果按程序包有2或3个类,您可能会怀疑它们的相关性。
同样,如果一个程序包中有50个类,您还可以考虑是否不应该将它们拆分为子程序包。
请注意,包在可访问性方面也起着作用:实际上,package private
访问级别允许设置/减少类或类成员对当前包的类的可访问性。就设计和隔离而言,它也可能非常有用。
关于您的3个问题:
问题1:实体类包名称必须是什么?实体或 型号?
在Java中,entity
通常是指JPA实体(在Spring项目中总体而言)。
尽管model
是指一个更通用的概念,其中包括entity
,但不仅因为数据模型还可以是DTO
对象和模型的任何数据特化。
如果您使用单个数据对象层(也用作JSON表示形式的JPA实体),则使用model
一词是完全有意义的。如果您使用多个抽象级别,则按抽象级别的包更有意义。
问题2:必须在哪里保存Searchrequest和Searchresponse等 请求响应类?在模型包中,否则我必须创建其他 包?
如果这些对象遍历model
中的每个层,则可能在其他地方。
问题3:是否退出了一些用于包装结构的标准? (请给 我链接)
3)并非完全如此,但根据经验,它应该是自我解释的,非常清楚的并且由项目团队共享,以促进项目之间的一致性。
答案 3 :(得分:1)
创建软件包是免费的,因此不必担心创建许多软件包。创建软件包的目的是组织代码并界定一些职责或上下文。
问题1:实体类包名称必须是什么?实体还是模型?
在选择更好的名称之前,您需要在understand the difference之间进行选择:
模型对象表示MVC(模型视图控制器)中的数据 图案。实体对象代表ORM中的数据(对象 关系映射)模式。它们可能是同一对象。是否。
因此,您可以将Entity用作Model类,即使我理解这也是一种不好的做法。如果是您的情况,也许您更喜欢使用model
作为程序包名称。如果没有,entity
是正确的选择。
问题2:必须在哪里保存Searchrequest和Searchresponse以及其他请求响应类?在模型包装中,还是我必须创建其他包装?
此类与控制器软件包非常相关。因此,您可以创建这两个程序包并将请求和响应放在其中,每个都放在他的程序包中:
controller.response
controller.request
问题3:是否退出了一些用于包装结构的标准? (请给我链接)
查看此答案:Are there best practices for (Java) package organization?