项目之初,一般我们会根据团队的构成和项目的需求把技术选型、框架定下来,技术选型框架确定后,在团队成员参与开发之前,项目的一些基础服务和组织架构需要资深的负责人或者团队讨论一起分工完成。这样在开始开发后,团队成员可以专心在业务需求的开发上。
通过IDEA在spring boot项目创建完成后,最初的项目结构如下:
main
- com.webapi
- SpringBootApplication.class
- main主函数
- resources
- application.properties
test
pom.xml
以我个人的喜好和为了整个项目的结构清晰,一般我会将所有类放入包管理下,通过包名可以分门别类,每个包功能分工都很明确。针对启动类创建了main包来管理:
+ main
+ com.webapi
+ main
- SpringBootApplication.class
- main主函数
+ resources
- application.properties
+ test
- pom.xml
如果项目是专门提供接口的,一般结构形式是service层、controller层、model层,考虑spring boot和mybatis结合,mybatis做持久化层,单独创建了包mapper存放一些接口方法。
+ main
+ com.webapi
+ controller
+ entity
+ mapper
+ service
另外我们需要对一些异常以及自定义异常做统一处理,创建了exception包。我们在处理时间或者一些ip信息时需要一些工具类,这时我们需要一个util工具包来管理一些工具类。
+ exception
+ util
当我们开始写代码时,我们需要清晰的知道方法的传参、返回值以及接口耗时等信息,传参和返回值信息都可以在每个方法里记录下日志,但是这样非常繁琐而且规则不统一,我们需要用到aop将请求和响应的信息都汇集到一起处理记录下所有信息,再将结果返回出去,这时创建aop包来管理一些aop的实现。
+ aop
随着项目的逐步推进,可能还有一些其他功能的介入,需要随时做出调整,但基本的结构还是比较固定的。
最后整个项目组织形式大致如下:
+ main
+ com.webapi
+ aop
+ controller
+ entity
+ exception
+ main
+ mapper
+ service
+ reqParam 请求参数的实体
+ resParam 数据响应的实体
+ util
+ resources
- application.properties
- application-dev.properties
- application-prod.properties
+ test
pom.xml