# blog **Repository Path**: com_xxl/blog ## Basic Information - **Project Name**: blog - **Description**: 有spring boot搭建的blog后端系统API,具体说明请查看README文件 - **Primary Language**: Java - **License**: AFL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-03-28 - **Last Updated**: 2023-04-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # blog项目说明 ### 1:环境 - IDEA2022.2.3 - spring-boot 2.7.9 - maven 3.8.6 ### 2:项目中用到的框架/技术 - 授权认证:jwt - jsr校验 - 数据源(数据库连接池):druid - OPENAPI规范:swagger - 邮件 - mybatis - mysql - 全局异常处理 - AOP切面日志打印 - 日志生成 ### 3:blog API - **swagger地址:具体的网址:8080/BlogApp/swagger** - **druid后台:具体的网址:8080/BlogApp/druid** ### 4:项目的架构 - **本项目用的是传统的三层架构,即MVC** - **接下来是项目目录说明:-是文件夹 --是具体文件** ```txt -src -main -com -xxl -aop 打印全局异常和全局回应json到控制台 -config mvc配置 --SpringWebMvcConfig.java 配置跨域和拦截器类 -controller 控制器 -impl 接口实现包 --AdminApi 管理员Api接口 --BlogApi 博客相关的接口 --BlogCommentApi 博客评论相关的额接口 --NoAuthenticationApi 不需要权限或者身份的接口 --UserApi 用户相关接口 -dao 数据库映射包,这个包下全是接口,具体实现由xxxMapper.xml实现 --blog -BlogMapper 映射blog_database数据库中blog_content表 -CollectBlogMapper 映射blog_database数据库中collect_blog表 -HomBlogMapper 映射blog_database数据库中home_blog表 --comment -BlogCommentMapper 映射blog_database数据库中blog_comment表 --follow -FollowBlogMapper 映射blog_database数据库中follow_blog表 --user -UserMapper 映射blog_database数据库中user_role、user_blog表 -dto javaBean -exception 异常包处理全局异常 -filter 过滤器包,具体的权限过滤和等级过滤就是在这里实现的 -interceptor 拦截器包检查是否登录的 -service 业务包 - impl 接口实现包 --BlogService 映射博客相关的dto --UserService 映射用户相关的dto -util 工具包 --ConstantField 存放唯一不可变的值 java接口 --DateUtil 算法包,用于主页展示博客的算法Java类 --EmailUtil 生成注册码的java类 --GlobalResult 生成全局json回应的java类 --ModelData 存放全局唯一的变量java类 --UuidUtil 生成uuid的工具包java类 --BlogApplication 启动类 -resources -config 存放mybatis配置文件 -like 保存每位用户点赞记录的文件 -mapper 存放mybatis的xxMapper.xml文件包,映射com.xxl.dao包下的各种接口 -picture 存放用户上传头像的包注意在application.yml配置文件更改地址 -sqlscript sql脚本包,包下的文件直接运行就行,但是注意连接数据库 --application.yml 主配置文件 --application-database.yml 数据库配置文件 --application-swagger.yml swagger文档的配置 --log4j.properties 用于log4j的配置 -test 测试目录不说明 -.gitignore 忽略那些文件 -pom.xml maven项目依赖文件 -README.md readMe文件 ``` ### 5:总结 - ##### 开发新项目时 1. 需要设计流程图 2. 设置数据库 - 数据主键千万不能是要改变的,本次最蠢的就是以用户以名字主键 - A表和B表产生联系时一定需要不改变的主键用来联系,切不可用需要改变的字段 - 前期一定要设计好,没有设计好后期一改动就会出现一些逻辑错误,而且还可能发生局部异常 3. 编写后端 - 第一点是一定需要确定安全、权限问题 - 在编写某些服务时,如果涉及到某些联表的操作,就需要这个表的动作做完,另一个表也需要操作。如用户表和发布博客是连在一起的,如果要删除某一个用户时,就一定需要删除博客表的这个 用户所发的所有博客 - 有些查询查询为空就返回空而不是返回查询失败