所有的开发工具都有自己的目录架构,有的复杂,有的更复杂。第一次看见不同人建的java目录感觉很高大尚,并且听着每个目录对应的逻辑层级,更是云里雾里,动手后结合着SpringBoot项目得执行逻辑,回头来看目录,才回味无穷。 不是复杂生来具有,而是生来简单,日积月累变复杂的。
==摘自各位大神的描述做了归类整理
src \main \java | 存放的是代码源文件,java、xml、proeprties等 | ||
工程启动类 | ApplicationServer.java | 启动类(OnlineXdclassApplication);需要添加注解@SpringBootApplication,此注解标识此类为一个springboot项目启动类。注意包的使用,springboot默认注解会扫描此启动类目录开始及下面的所有子类,如果其他类文件不在此目录下需要在启动类中加入@ComponentScan(basePackages = { “com.xiong.test” }) 注解进行定制扫描。 文件应与以上各目录平级,否则会导致扫描异常 Application,启动类!springboot由于内嵌容器,因此不需要再安装tomcat等容器去启动。但是需要一个启动的入口,而这个Application正是起到这种作用; | |
前端控制器 | controller | 这里分接口和实现类,接口在service目录下,接口实现类在service/impl目录下; 作用于web层,通过访问相应的api接口调相应的实现具体业务的方法 把用户提交来的请求通过对URL的匹配,分配个不同的接收器,再进行处理,然后向用户返回结果 | |
数据服务层 | service | 数据服务的实现接口(serviceImpl/impl);具体的逻辑代码实现层,连接mapper以及controller的中间层,一般建立相应的service接口以及impl实现类; 文件夹存放的是承载controller方法的业务逻辑的service类,请将业务逻辑内容写在service方法中; 又叫服务层或业务层,封装Dao层的操作,使一个方法对外表现为实现一种功能 数据服务实现层(Service Implements)推荐:net.csdn.service.impl | |
数据访问层 dao(推荐) | repository | jpa项目: 数据访问层,与数据库交互为service提供接口(对某个表进行增删改查,一个’*Mapper.java’和一个’*Mapper.xml’对应一张表(存在关联查询的情况);Mybatis使用的是mapper,JPA使用的是repository) | |
mapper | mybatis项目: 作用于持久化层,和数据库打交道,根据业务逻辑建立相应的类;文件夹里存放的是各个方法所用的sql的文件,一般为java类或XML文件 基础的CRUD语句在这里写 | ||
实体类 | domain | jpa项目:实体类定义在这里 | |
entity(推荐) | mybatis项目:就是数据库表的实体对象 | ||
???? | model/pojo层 | model文件夹存放的为方法里所引用到的实体类,model里还可分为:dto、vo等,dto是mapper方法里引用相关联数据的类,vo则是用于表层传输的实体对象; 目录主要用于实体(Entity)与数据访问层(Repository); | |
配置信息类 | config | 配置读取相关,比如RedisConfig.java | |
工具类 | utils | 通常是一些工具类,比如说:DateUtil.java、自定义的StringUtil.java;这是一个工具包,作用于全局的工具类可以建立在这个包中,一般建立本地缓存guava,MD5加密,自定义返回类,JWTS工具类等 | |
常量接口类 | constant | 常量,也可以放枚举类型文件 | |
面向切面编程 | aspect | ||
请求参数 | param | 放的是请求参数和相应参数UserQueryRequest、BaseResponse等 | |
项目统一拦截处理 | interrupt /Interceptor | 项目统一拦截处理,比如:登录信息,统一异常处理;顾名思义这是一个拦截器的实现类,可以在此处实现逻辑拦截 | |
自定义异常 | exception | 自定义异常,异常错误码 | |
数据传输类 视图包装对象 | vo | View Object用于封装客户端请求的数据,防止部分数据泄露如:管理员ID,保证数据安全,不破坏 原有的实体类结构; alibaba:显示层对象,通常是 Web 向模板渲染引擎层传输的对象; | |
枚举类型 | enums | ||
数据传输对象 | dto | 数据传输对象(Data Transfer Object)用于封装多个实体类(domain)之间的关系,不破坏原有的实体类结构 | |
web | 层负责页面访问控制 | ||
comm | 目录建议放置公共的类,如全局的配置文件、工具类等 | ||
src \main \resources | 资源目录 | 这个就很重要,这儿不仅仅是存放各种配置文件的地方了,还被用来存放前端的html页面,css,js等静态资源 | |
静态资源目录 | static | (Spring Boot 默认的)存放静态文件,比如 css、js、image, 3)(访问方式 http://localhost:8080/js/main.js) 目录存放 web 访问的静态资源,如 js、css、图片等; | |
public | (Spring Boot 默认的)存放公共文件;Spring Boot 默认会挨个从 META/resources > resources > static > public 里面找是否存在相应的资源,如果有则直接返回。 | ||
视图模板目录 | templates | (用户自己定义的,可以随便取名,但这里使用公认的文件名)存放静态页面,比如 jsp、html; 存放页面渲染模板文件;目录存放页面模板; | |
项目配置文件 | application.yml | application.properties文件是存放一些配置文件,有的是application.yml或者application.yaml实质是一样的,就是展示不同而已。 |
==自己Demo的示例目录: