我有一个帮助类,它为我的API请求生成一个pdf。我是spring的新手(使用spring boot),我想遵循严格的包装结构。
我很困惑: -
1.我应该使用什么包名称。例如:com.abx.myapp.helper
2.对于这些帮助程序类,我应该遵循哪种命名约定?
答案 0 :(得分:1)
我不建议使用helper
软件包,因为它可能成为无关帮助程序功能的倾销场。相反,我会将与PDF相关的所有内容放在pdf
包中。
对于生成PDF的类本身,我给它一个描述性的名称,描述它的作用。类似于PdfGenerator
。
答案 1 :(得分:1)
这是一个非常主观的话题。我个人更喜欢按照共同的业务领域对类进行分组,将它们组合成逻辑模块:
org.app.report
|
+- ReportController
+- ReportService
+- PdfWriter
org.app.customer
|
+- Customer
+- CustomerController
+- CustomerService
+- CustomerRepository
,而不是按类的功能目的进行分组:
org.app.controller
|
+- ReportController
+- CustomerController
org.app.service
|
+- etc...
因此,按照我的首选包装,您可能希望将此类放在其他相关业务代码旁边。但请记住:
如果您想在多个地方重复使用此帮助程序,请考虑将其保留在某种外部util
或helper
包中。
答案 2 :(得分:1)
这取决于您要遵循的项目结构。我通常遵循这些类型的项目结构:
1. eg.com.myapp
├─── service
│ ├──── UserService.java
│ └──── PdfService.java
├─── controller
│ ├──── UserController.java
│ └──── PdfController.java
└─── util
├──── PdfUtils.java
└──── UserDetailsVerifier.java
2. eg.com.myapp
├─── user
│ ├──── UserController.java
│ ├──── UserDetailsVerifier.java
│ └──── UserService.java
└─── pdf
├──── PdfService.java
├──── PdfController.java
└──── PdfUtils.java
所以eg.com.myapp.util.PdfUtils.java
或eg.com.myapp.pdf.PdfUtils.java
。
就个人而言,我发现第二种结构最适合我,特别是在大型项目上工作时,因为使用第一种结构可能会很快失控 - 查找控制器和服务变成了一件苦差事。
如果您的pdf utils类包含更多通用方法,则可以将其命名为PdfUtils.java
或仅Pdfs.java
。虽然将它命名为例如PdfGenerator.java
并且使其具有仅针对pdf生成的方法并且没有其他方法(例如spring具有Base64Utils.java
以用于使用Base64编码和解码将更清楚,jpa具有{ {1}}仅用于规范组合。