首页 > 文章列表 > springBoot常用目录何在?

springBoot常用目录何在?

springboot
167 2023-07-01

springBoot项目常用目录有哪些

springBoot项目常用目录

springBoot项目的目录结构及名规范

介绍基于SpringBoot开发时的目录结构及命名规范,通过介绍能够为你解决,在实际项目中如何规划目录结构?如何命名目录更规范?各个目录分别代表什么含义?等三个问题。

目录说明

servicex                 // 项目名

    |- admin-ui          // 管理服务前端代码(一般将UI和SERVICE放到一个工程中,便于管理)

    |- servicex-auth     // 模块1

    |- servicex-common   // 模块2

    |- servicex-gateway  // 模块3

    |- servicex-system   // 模块4

        |- src

            |- main                  // 业务逻辑

                |- assembly          // 基于maven assembly插件的服务化打包方案

                    |- bin           // 模块脚本(启动、停止、重启)

                    |- sbin          // 管理员角色使用的脚本(环境检查、系统检测等等)

                    |- assembly.xml  // 配置文件

                |- java              // 源码

                    |- com

                        |- hadoopx

                            |- servicex

                                |- system

                                    |- annotation     // 注解

                                    |- aspect         // 面向切面编程

                                    |- config         // 配置文件POJO

                                    |- filter         // 过滤器

                                    |- constant       // 存放常量

                                    |- utils          // 工具

                                    |- exception      // 异常

                                    |- controller     // 控制层(将请求通过URL匹配,分配到不同的接收器/方法进行处理,然后返回结果)

                                    |- service        // 服务层接口

                                        |- impl       // 服务层实现

                                    |- mapper/repository // 数据访问层,与数据库交互为service提供接口

                                    |- entity/domain     // 实体对象

                                        |- dto // 持久层需要的实体对象(用于服务层与持久层之间的数据传输对象)

                                        |- vo // 视图层需要的实体对象(用于服务层与视图层之间的数据传输对象)

                                    |- *Application.java  // 入口启动类

                |- resources         // 资源

                    |- static        // 静态资源(html、css、js、图片等)

                    |- templates     // 视图模板(jsp、thymeleaf等)

                    |- mapper        // 存放数据访问层对应的XML配置

                        |- *Mapper.xml

                        |- ...

                    |- application.yml        // 公共配置

                    |- application-dev.yml    // 开发环境配置

                    |- application-prod.yml   // 生产环境配置

                    |- banner.txt    

                    |- logback.xml            // 日志配置

            |- test                  // 测试源码

               |- java               

                    |- com

                        |- hadoopx

                            |- servicex

                                |- system

                                    |- 根据具体情况按源码目录结构存放编写的测试用例

        |- target     // 编译打包输出目录(自动生成,不需要创建)

        |- pom.xml    // 该模块的POM文件

    |- sql            // 项目需要的SQL脚本

    |- doc            // 精简版的开发、运维手册

    |- .gitignore     // 哪些文件不用传到版本管控工具中

    |- pom.xml        // 工程总POM文件

    |- README.md      // 注意事项

External Libraries    // 相关JAR包依赖

注意事项

(1). mapper/repository,数据访问层,与数据库交互为service提供接口(对某个表进行增删改查,一个’*Mapper.java’和一个’*Mapper.xml’对应一张表(存在关联查询的情况);Mybatis使用的是mapper,JPA使用的是repository)

(2). entity/domain,数据实体类(Mybatis使用的是entity,JPA使用的是domain)

(3). POJO,VO,DTO,DO,PO,BO的含义:

  • POJO:是一个简单的、普通的JAVA对象,它包含业务逻辑处理或持久化逻辑等。但不是JavaBean、EntityBean等,不具有任何特殊角色,不继承或不实现任何其它JAVA框架的类或接口。可以包含类似与JavaBean属性和对属性访问的setter和getter方法的对象。

  • VO(View Object):视图对象,用于展示层显示,代表展示层需要显示的数据。它的作用是把某个指定页面/组件需要的所有数据封装起来。

  • DTO(Data Transfer Object):数据传输对象,用于服务层与持久层之间的数据传输对象,代表服务层需要接收/返回的数据。

  • DO(Domain Object): 领域对象,就是从现实世界中抽象出来的有形或无形的实体对象。

  • PO(Persistent Object):持久化对象,它跟持久层(通常是关系型数据库)的数据结构形成一一对应的映射关系,数据表中的每个字段(或若干个)就对应PO的一个(或若干个)属性。

  • BO(Business Object): 业务对象,用于把业务逻辑封装为一个对象,这个对象可以包括一个或多个其它的对象。

  • POJO持久化之后 -> PO;POJO传输过程中 -> DTO;POJO用作表示层 -> VO