# 一、代码层结构
>[danger] 根目录:`com.wotu.train`
启动类`TrainMainServiceApplication.java`推荐放在根目录 `com.wotu.train` 包下
> 数据实体类`domain`
* jpa项目:`com.wotu.train.domain`
* mybatis项目:`com.wotu.train.entity`
> 数据接口访问层`Dao`
* jpa项目:`com.wotu.train.repository`
* mybatis项目:`com.wotu.train.mapper`
> 数据服务接口层`Service`:`com.wotu.train.service`
> 数据服务接口实现层`Service Implements`:`com.wotu.train.service.impl`
> 前端控制器层`Controller`:`com.wotu.train.controller`
> 工具类库utils:com.wotu.train.utils
> 配置类config:com.wotu.train.config
> 数据传输对象dto:com.wotu.train.dto
>[warning] 数据传输对象`Data Transfer Object`用于封装多个实体类`domain`之间的关系,不破坏原有的实体类结构
> 视图包装对象`vo`:`com.wotu.train.vo`
>[warning] 视图包装对象`View Object`用于封装客户端请求的数据,防止部分数据泄露如:管理员ID,保证数据安全,不破坏 原有的实体类结构
> 常量类`constant`:com.wotu.train.constant
# 二、资源目录结构
>[danger] 根目录:`resources`
项目配置文件:`resources/application.yml`
静态资源目录:`resources/static/`
> 用于存放html、css、js、图片等资源
视图模板目录:resources/templates/
> 用于存放jsp、thymeleaf等模板文件
mybatis映射文件:resources/mappers/
mybatis配置文件:resources/spring-mybatis.xml
# 三、mybatis项目结构示例
```
.
│ mvnw
│ mvnw.cmd
│ pom.xml
│ README.md
│
└─src
├─main
│ ├─java
│ │ └─com
│ │ └─wenjianbao
│ │ └─api
│ │ │ WenjianbaoApiApplication.java
│ │ │
│ │ ├─config
│ │ │ │ QuartzJob.java
│ │ │ │ Swagger2.java
│ │ │ │ TaskExecutorConfig.java
│ │ │ │
│ │ │ └─websocket
│ │ │ WebSocketConfig.java
│ │ │ WebSocketHandler.java
│ │ │ WebSocketInterceptor.java
│ │ │
│ │ ├─constants
│ │ │ WeChatConstants.java
│ │ │
│ │ ├─mapper
│ │ │ WechatLoginLogMapper.java
│ │ │ WechatMsgMapper.java
│ │ │ WechatUserOpenidMapper.java
│ │ │
│ │ ├─domain
│ │ │ WechatLoginLog.java
│ │ │ WechatMsg.java
│ │ │ WechatUserOpenid.java
│ │ │
│ │ ├─service
│ │ │ │ UserSignatureService.java
│ │ │ │ WechatService.java
│ │ │ │ WxMsgService.java
│ │ │ │
│ │ │ └─impl
│ │ │ WechatServiceImpl.java
│ │ │ WxMsgServiceImpl.java
│ │ │
│ │ ├─utils
│ │ │ │ EmailUtil.java
│ │ │ │ EncryptUtil.java
│ │ │ │ StringUtil.java
│ │ │ │
│ │ │ └─wechat
│ │ │ SHA1.java
│ │ │ WXBizMsgCrypt.java
│ │ │ XMLParse.java
│ │ │
│ │ ├─vo
│ │ │ TemplateLibraryVO.java
│ │ │ TemplateMessageVO.java
│ │ │
│ │ └─controller
│ │ WechatController.java
│ │ WxMsgController.java
│ │
│ └─resources
│ │ application.properties
│ │ ehcache3.xml
│ │ logback-spring.xml
│ │
│ ├─mappers
│ │ WechatLoginLogMapper.xml
│ │ WechatMsgMapper.xml
│ │ WechatUserOpenidMapper.xml
│ │
│ ├─static
│ └─templates
└─test
└─java
└─com
└─wenjianbao
└─api
WenjianbaoApiApplicationTests.java
```
- 序言
- 基础
- 安装
- 开发规范
- 目录结构
- 配置
- 快速入门
- 架构
- 请求流程
- 架构总览
- URL访问
- 容器和依赖注入
- 中间件
- 事件
- 代码层结构
- 四个层次
- 路由
- 控制器
- 请求
- 响应
- 数据库
- 模型
- 视图
- 注解
- 错误和日志
- 异常处理
- 日志处理
- 调试
- 验证
- 验证器
- 验证规则
- 扩展库
- 附录
- Spring框架知识体系详解
- Maven
- Maven和Composer
- 构建Maven项目
- 实操课程
- 01.初识SpringBoot
- 第1章 Java Web发展史与学习Java的方法
- 第2章 环境与常见问题踩坑
- 第3章 springboot的路由与控制器
- 02.Java编程思想深度理论知识
- 第1章 Java编程思想总体
- 第2章 英雄联盟的小案例理解Java中最为抽象的概念
- 第3章 彻底理解IOC、DI与DIP
- 03.Spring与SpringBoot理论篇
- 第1章 Spring与SpringBoot导学
- 第2章 Spring IOC的核心机制:实例化与注入
- 第3章 SpringBoot基本配置原理
- 04.SprinBoot的条件注解与配置
- 第1章 conditonal 条件注解
- 第2章 SpringBoot自动装配解析
- 05.Java异常深度剖析
- 第1章 Java异常分类剖析与自定义异常
- 第2章 自动配置Url前缀
- 06.参数校验机制与LomBok工具集的使用
- 第1章 LomBok工具集的使用
- 第2章 参数校验机制以及自定义校验
- 07.项目分层设计与JPA技术
- 第1章 项目分层原则与层与层的松耦合原则
- 第2章 数据库设计、实体关系与查询方案探讨
- 第3章 JPA的关联关系与规则查询
- 08.ORM的概念与思维
- 第1章 ORM的概念与思维
- 第2章 Banner等相关业务
- 第3章 再谈数据库设计技巧与VO层对象的技巧
- 09.JPA的多种查询规则
- 第1章 DozerBeanMapper的使用
- 第2章 详解SKU的规格设计
- 第3章 通用泛型Converter
- 10.令牌与权限
- 第1章 通用泛型类与java泛型的思考
- 常见问题