摘 要
随着现在信息化时代的发展,越来越多的人喜欢把自己的一些见解和心得记下来,放到一个平台上,希望别人来观看和交流。所以博客孕育而生,特别是技术类的博客,更是给开发者带来更多学习他人经验与技术的机会和与提供和别人交流和分享的一个平台。
本课题将许多当前比较热门的技术框架有机的集合起来,比如Spring boot、Spring data、Elasticsearch等。同时采用Java8作为主要开发语言,利用新型API,改善传统的开发模式和代码结构,实现了具有实时全文搜索、博客编辑、分布式文件存贮和能够在浏览器中适配移动端等功能的响应式技术博客。
在保证功能够全部实现的同时,使用一些比如回归测试和后台测试驱动开发,以及最后的postman接口测试和浏览器适配移动端等成熟的测试技术和方法。测试结果符合预期,系统功能完善,有良好的用户体验。确保系统上线后是一个能够给用户分享经验和心得,以及学习他人优秀成果的系统。
关键字:Spring Boot; Blog; Java; Elasticsearch;
ABSTRACT
With the development of the information age, more and more people like to put some of their views and thoughts down, put them on a platform, and hope to see and communicate with others. So blogs are born, especially technical blogs, to give developers more opportunities to learn from others' experience and technology, and a platform to communicate and share with others.
This topic organically integrates many popular technical frameworks, such as Spring boot, Spring data, Elasticsearch and so on. At the same time, Java8 is used as the main development language, and the new API is used to improve the traditional development mode and code structure. A response technology blog with real-time full text search, blog editing, distributed file storage and the ability to fit mobile terminal in browsers is realized.
While guaranteeing the full realization of the work, some mature testing techniques and methods such as regression testing and back-end test drive development, and the final postman interface test and browser fit mobile end are used. The test results meet the expectations, the system is functional and has a good user experience. To ensure that the system is on-line, it is a system that can provide users with experience and experience, and learn from others' outstanding achievements.
Keywords: Spring Boot; Blog; Java; Elasticsearch;
目录
1 绪论 1
1.1 项目背景 1
1.2 本课题的国内外研究现状 1
1.3 本课题研究意义 2
1.4 课题研究内容 3
1.5 本论文组织结构 3
2 开发环境与相关技术 4
2.1 Windows系统介绍 4
2.2 Java语言 4
2.3 Spring boot框架 5
2.4 Spring security 框架 5
2.5 Spring data 框架 5
2.5.1 Spring data jpa 5
2.5.2 Spring data elasticsearch 6
2.5.3 Spring data mongodb 6
2.6 Maven 工具 7
2.7 Lombok 工具 7
2.8 设计模式 7
3. 系统分析 8
3.1 可行性分析 8
3.1.1 技术可行性分析 8
3.1.2 经济可行性分析 8
3.1.3 操作可行性分析 8
3.1.4 法律可行性分析 8
3.2 用户需求分析 9
3.2.1 用户管理模块 10
3.2.2 全文搜索模块 11
3.2.3 博客管理模块 13
3.2.4 评论管理模块 14
3.2.5 点赞管理模块 15
3.2.6 权限设置模块 16
3.2.7 个性推荐模块 17
3.2.8分类管理模块 18
3.2.9标签管理模块 19
3.3 非功能需求分析 20
3.3.1安全性 20
3.3.2简约规范 20
3.3.3流畅高效 20
3.3.4良好的用户体验 20
3.4 开发和运行环境 20
3.4.1 开发环境 20
3.4.2 运行环境 21
4.系统设计 22
4.1 系统架构设计 22
4.1.1模型层 22
4.2.2控制层 23
4.2.3视图层 23
4.2 功能模块设计 24
4.2.1用户管理模块 25
4.2.2全文搜索模块 25
4.2.3博客管理模块 25
4.2.4评论管理模块 26
4.2.5点赞管理模块 26
4.2.6权限设置模块 26
4.2.7个性推荐模块 26
4.3 数据模型设计 26
4.3.1博客模型 27
4.3.2用户模型 28
4.3.3博客评论模型 28
4.3.4评论模型 29
4.3.5分类模型 29
4.3.6博客点赞模型 29
4.3.7点赞模型 29
4.3.8权限模型 30
4.3.9用户权限模型 30
5. 系统实现 31
5.1 数据获取层 31
5.1.1 用户管理模块 31
5.1.2 博客管理模块 32
5.1.3 点赞管理模块 36
5.1.4评论管理模块 37
5.1.5分类管理模块 40
5.2 数据构建层 43
5.2.1 用户管理模块 43
5.2.2 博客管理模块 44
5.2.3 分类管理模块 44
5.2.4 点赞管理模块 45
5.2.5 评论管理模块 45
5.2.6 权限管理模块 46
5.3 数据展示层 47
5.5.1登录界面 47
5.5.2注册界面 47
5,5.3博客主页界面 48
5.4.4创建博客界面 49
5.5.5查看博客界面 50
5.5.6点赞界面 50
5.5.7评论界面 51
5.5.8用户主页界面 51
5.5.9个人设置界面 52
5.5.10头像变更切图界面 52
5.5.11分类管理界面 53
6. 软件测试 54
6.1 测试环境 54
6.2 测试方法 54
6.3 测试用例设计 56
6.4 测试结果 59
7. 总结和展望 60
7.1 毕业设计工作总结 60
7.2 展望 60
致谢 61
参考文献 62