基于 SpringBoot 的个人博客系统设计与实现(含论文与程序代码).rar
Posted weixin_40228600
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于 SpringBoot 的个人博客系统设计与实现(含论文与程序代码).rar相关的知识,希望对你有一定的参考价值。
绪论 1
1.1系统的概述1
1.2系统的研究背景
2需求分析
2.1系统需求分析
2.2可行性分析
2.2.1技术可行性
2.2.2经济可行性
2.2.3操作可行性
2.3开发及运行环境
3总体设计
3.1系统功能结构图
4.1. 1数据库表概要
3. 2数据库表设计 4
3.3配置文件详情
4系统详细设计
4.1登录界面
4.2游客操作
4.2.1博客查看
4.2.2分类查看
4.2.3标签查看
4.2.4归档查看
4.2.5查看作者
4.2.6搜索博客
4.3管理员操作
4.3.1博客管理
4.3.2分类管理15
4.3.3标签管理
5系统测试
5.1 测试的必要性
5.1. 1 目的
5.2 测试过程
5. 2. 1 白盒测试
5.3 测试结果
5.4 项目部署
5.5 负载均衡测试
总 结
鸣 谢
参考文献
摘要
作为计算机的学生,我们学习的方法是通过老师,书籍, 论文等。 对很多从事计算机方面的人来说, 他们学习知识是通过官方文档,以及相关博客。现在知名博客网站有很多, 比如 CSDN, 博客园, 还有全球最知名的 Github。 其中我也在这几个博客中写过一些文章, 分享自己学习的成果。 因此我在想为什么不自己打造一个属于自己的博客呢。我的博客系统是采SpringBoot、 SpringMvc、 Spring等技术栈编写的, 数据库采用 mysql。 架构方式是采用 MVC 三层架构方式。 管理员可以对博客进行添加, 删除, 修改, 查询操作。 游客可以查看管理员编辑的博客,并可以评论, 打赏。 最后通过测试跟负载均衡完善最终需求。
关键词: SpringBoot; Github; MVC
1 绪论
1.1 系统的概述
进入二十一世纪, 以互联网为核心的现代网络和通信技术已经得到了快速的发展和广泛的应用, 各种网络通信工具也随时代而生。 其中就有论坛、 博客、 社区等较受广大人民欢迎, 也是现在发展的比较成熟的信息交流工具。 随着网络技术的日渐成熟, 互联网已成为日常生活必不可少的工具, 网络博客在近几年更是成为各类网友不可缺少的交流工具。
以前我们记录个人生活的时候, 我们可以写日志。 现在我们可以写博客。 博客又称为网络日志。 目的是通过博客记录生活的点滴, 分享身边美好的东西, 发表自己的感言, 与更多志同道合的人交流。 博客发展到今天已经取得了相当规模的成就, 以新浪、 搜狐、 网易为代表的三大门户网站都已经推出了自己的博客服务, 在规模扩大的同时, 博客技术也在不断的进步和完善。
1.2 系统的研究背景
博客改变着人们的交流方式和情感体验和表达形态, 改变着人们聚散的方式,它影响着中国互联网的发展走向, 甚至会波及或影响着现实社会的决策。 在这个信息时代, 只要你在网上发布了信息, 就算是一张图片, 一段文字, 一个音频。它都可以传遍世界各个角落, 可想网络时代的传播速度。 毫无疑问, 博客将可以作为我们美好事物及美好思想传播的载体。 通过博客, 你的科研成果可以让更多人知道, 可以传播到世界各地, 让更多人知道, 可以推进社会的进步。 无疑, 博客这样一种影响力颇大的媒介将有利于我们好的思想好的事物的传播, 有利于社会进步。 所以我们要把这种好的影响力发挥到最大。
部分页面截屏
前端页面
部分代码:
package com.blog.controller;
import com.blog.pojo.Blog;
import com.blog.pojo.Message;
import com.blog.service.BlogService;
import com.blog.service.MessageService;
import com.blog.service.TagService;
import com.blog.service.TypeService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @author Ryan
*/
@Controller
public class IndexController
@Autowired
private BlogService blogService;
@Autowired
private TypeService typeService;
@Autowired
private MessageService messageService;
@Autowired
private TagService tagService;
/**
* 首页数据
* @param model
* @param pageNum
* @return
*/
@RequestMapping("/")
public String toIndex(@RequestParam(required = false,defaultValue = "1") int pageNum,Model model)
PageHelper.startPage(pageNum, 5);
List<Blog> allBlog = blogService.getIndexBlog();
//获取推荐博客
List<Blog> recommendBlog =blogService.getAllRecommendBlog();
//得到分页结果对象
PageInfo pageInfo = new PageInfo(allBlog);
List<Message> messages = messageService.findByIndexParentId();
model.addAttribute("messages", messages);
model.addAttribute("pageInfo", pageInfo);
model.addAttribute("recommendBlogs", recommendBlog);
List<Blog> HotBlog=blogService.getHotBlog();
model.addAttribute("HotBlog", HotBlog);
return "index";
@PostMapping("/search")
public String search(@RequestParam(required = false,defaultValue = "1",value = "pagenum")int pagenum,
@RequestParam String query, Model model)
PageHelper.startPage(pagenum, 5);
List<Blog> searchBlog = blogService.getSearchBlog(query);
PageInfo pageInfo = new PageInfo(searchBlog);
model.addAttribute("pageInfo", pageInfo);
model.addAttribute("query", query);
return "search";
@GetMapping("/blog/id")
public String toLogin(@PathVariable Long id, Model model)
Blog blog = blogService.getDetailedBlog(id);
model.addAttribute("blog", blog);
return "blog";
后端页面截图
部分代码如下:
package com.blog.controller.admin;
import com.blog.pojo.User;
import com.blog.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import javax.servlet.http.HttpSession;
/**
* 后台登录处理
* @author Ryan
*/
@Controller
@RequestMapping("/admin")
public class LoginController
@Autowired
private UserService userService;
/**
* 修复后台路径访问
* @param session
* @return
*/
@GetMapping()
public String loginPage(HttpSession session)
if (session.getAttribute("user")!=null)
return "admin/index";
return "admin/login";
@GetMapping("/login")
public String login(HttpSession session)
if (session.getAttribute("user")!=null)
return "admin/index";
else
return "redirect:/admin";
@PostMapping("/login")
public String login(@RequestParam String username,
@RequestParam String password,
HttpSession session,
RedirectAttributes attributes)
User user = userService.checkUser(username, password);
if(user != null)
session.setAttribute("user", user);
return "admin/index";
else
attributes.addFlashAttribute("msg", "用户名或密码错误");
return "redirect:/admin";
@GetMapping("/logout")
public String logout(HttpSession session)
session.removeAttribute("user");
return "redirect:/admin";
package com.blog.controller.admin;
import com.blog.pojo.Blog;
import com.blog.pojo.User;
import com.blog.service.BlogService;
import com.blog.service.TagService;
import com.blog.service.TypeService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import javax.servlet.http.HttpSession;
import java.util.List;
/**
* @author Ryan
*/
@Controller
@RequestMapping("/admin")
public class BlogController
@Autowired
private BlogService blogService;
@Autowired
private TypeService typeService;
@Autowired
private TagService tagService;
public void setTypeAndTag(Model model)
model.addAttribute("types", typeService.getAllType());
model.addAttribute("tags", tagService.getAllTag());
/**
* 后台显示博客列表
* @param pagenum
* @param model
* @return
*/
@GetMapping("/blogs")
public String blogs(@RequestParam(required = false,defaultValue = "1",value = "pagenum")int pagenum, Model model)
PageHelper.startPage(pagenum, 5);
List<Blog> allBlog = blogService.getAllBlog();
//得到分页结果对象
PageInfo pageInfo = new PageInfo(allBlog);
model.addAttribute("pageInfo", pageInfo);
setTypeAndTag(model);
return "admin/blogs";
/**
* 按条件查询博客
* @param blog
* @param pagenum
* @param model
* @return
*/
@PostMapping("/blogs/search")
public String searchBlogs(Blog blog, @RequestParam(required = false,defaultValue = "1",value = "pagenum")int pagenum, Model model)
PageHelper.startPage(pagenum, 5);
List<Blog> allBlog = blogService.searchAllBlog(blog);
//得到分页结果对象
PageInfo pageInfo = new PageInfo(allBlog);
model.addAttribute("pageInfo", pageInfo);
model.addAttribute("message", "查询成功");
setTypeAndTag(model);
return "admin/blogs";
/**
* 去新增博客页面
* @param model
* @return
*/
@GetMapping("/blogs/input")
public String toAddBlog(Model model)
//返回一个blog对象给前端th:object
model.addAttribute("blog", new Blog());
setTypeAndTag(model);
return "admin/blogs-input";
/**
* 去编辑博客页面
* @param id
* @param model
* @return
*/
@GetMapping("/blogs/id/input")
public String toEditBlog(@PathVariable Long id, Model model)
Blog blog = blogService.getBlog(id);
//将tags集合转换为tagIds字符串
blog.init();
//返回一个blog对象给前端th:object
model.addAttribute("blog", blog);
setTypeAndTag(model);
return "admin/blogs-input";
/**
* 新增、编辑博客
* @param blog
* @param session
* @param attributes
* @return
*/
@PostMapping("/blogs")
public String addBlog(Blog blog, HttpSession session, RedirectAttributes attributes)
//设置user属性
blog.setUser((User) session.getAttribute("user"));
//设置用户id
blog.setUserId(blog.getUser().getId());
//设置blog的type
blog.setType(typeService.getType(blog.getType().getId()));
//设置blog中typeId属性
blog.setTypeId(blog.getType().getId());
//给blog中的List<Tag>赋值
blog.setTags(tagService.getTagByString(blog.getTagIds()));
//id为空,则为新增
if (blog.getId() == null)
blogService.saveBlog(blog);
else
blogService.updateBlog(blog);
attributes.addFlashAttribute("msg", "新增成功");
return "redirect:/admin/blogs";
@GetMapping("/blogs/id/delete")
public String deleteBlogs(@PathVariable Long id, RedirectAttributes attributes)
blogService.deleteBlog(id);
attributes.addFlashAttribute("msg", "删除成功");
return "redirect:/admin/blogs";
以上是关于基于 SpringBoot 的个人博客系统设计与实现(含论文与程序代码).rar的主要内容,如果未能解决你的问题,请参考以下文章
(免费领取源码)基于Springboot+Vue+Element-ui的精美个人博客系统的设计与实现(附源码),可做毕业设计
热榜!! 基于java springboot实现博客系统《建议收藏》