基于Java+SpringBoot+Vue前后端分离精简博客系统设计和实现

news2024/10/1 15:30:38

博主介绍全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战

🍅文末获取源码联系🍅

👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟

2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅

Java项目精品实战案例《100套》

Java微信小程序项目实战《100套》

系统介绍:

当下,正处于信息化的时代,许多行业顺应时代的变化,结合使用计算机技术向数字化、信息化建设迈进。以前企业对于博客信息的管理和控制,采用人工登记的方式保存相关数据,这种以人力为主的管理模式已然落后。本人结合使用主流的程序开发技术,设计了一款基于Springboot开发的精简博客系统,可以较大地减少人力、财力的损耗,方便相关人员及时更新和保存信息。本系统主要使用B/S开发模式,在idea开发平台上,运用Java语言设计相关的系统功能模块,MySQL数据库管理相关的系统数据信息,SSM框架设计和开发系统功能架构,最后通过使用Tomcat服务器,在浏览器中发布设计的系统,并且完成系统与数据库的交互工作。本文对系统的需求分析、可行性分析、技术支持、功能设计、数据库设计、功能测试等内容做了较为详细的介绍,并且在本文中也展示了系统主要的功能模块设计界面和操作界面,并对其做出了必要的解释说明,方便用户对系统进行操作和使用,以及后期的相关人员对系统进行更新和维护。本系统的实现可以极大地提高企业的工作效率,提升用户的使用体验,因此在现实生活中运用本系统具有很大的使用价值。

程序上交给用户进行使用时,需要提供程序的操作流程图,这样便于用户容易理解程序的具体工作步骤,现如今程序的操作流程都有一个大致的标准,即先通过登录页面提交登录数据,通过程序验证正确之后,用户才能在程序功能操作区页面操作对应的功能。

程序操作流程图

功能截图:

5.1个人中心

通过设计的个人中心管理功能模块,管理用户可以对相关的个人信息进行管理,比如管理用户可以更新个人账号的密码信息,修改个人账号的用户名信息等,修改密码界面设计如图5-1所示,个人信息界面设计如图5-2所示。

图5-1修改密码界面

图5-2个人信息界面

5.2管理员管理

通过设计的管理员管理功能模块,管理用户可以管理相关的管理员信息资料,比如进行查看管理员的用户名,更新管理员的密码信息,删除已经注销的管理员信息记录等操作,管理员管理界面设计如图5-3所示。

图5-3管理员管理界面

5.3用户管理

通过设计的员工管理功能模块,管理用户可以管理相关的用户信息资料,比如进行查看用户姓名,修改用户联系方式,删除已经注销的用户信息记录等操作,用户管理界面设计如图5-4所示。

图5-4用户管理界面

5.4基础数据管理

通过设计的基础数据管理功能模块,管理用户可以对相关的博客类型、帖子类型、公告类型信息进行管理,比如管理用户可以查看博客类型、帖子类型、公告类型的详情信息,删除失效的博客类型、帖子类型、公告类型信息记录等,博客类型管理界面设计如图5-5所示,帖子类型管理界面设计如图5-6所示,公告类型管理界面设计如图5-7所示。

图5-5博客类型管理界面

图5-6帖子类型管理界面

图5-7公告类型管理界面

5.5博客信息管理

通过设计的博客信息管理功能模块,管理用户可以对相关的博客信息进行管理,比如管理用户可以查看博客内容信息,删除已经失效的博客信息记录等操作,博客信息管理界面设计如图5-8所示。

图5-8博客信息管理界面

5.6博客评论管理

通过设计的博客评论信息管理功能模块,管理用户可以对相关的博客评论信息进行管理,比如管理用户可以查看博客评论内容信息,删除已经失效的博客评论信息记录等操作,博客评论管理界面设计如图5-9所示。

图5-9博客评论管理界面

5.7博客收藏管理

通过设计的博客收藏管理功能模块,管理用户可以对相关的博客收藏信息进行管理,比如管理用户可以查看博客收藏时间信息,删除已经失效的博客收藏信息记录等操作,博客收藏管理界面设计如图5-10所示。

图5-10博客收藏管理界面

5.8论坛管理

通过设计的论坛管理功能模块,管理用户可以对相关的论坛信息进行管理,比如管理用户可以查看论坛的帖子内容信息,删除已经失效的论坛信息记录等操作,论坛管理界面设计如图5-11所示。

图5-11论坛管理界面

5.9公告信息管理

通过设计的公告信息管理功能模块,管理用户可以对相关的公告信息进行管理,比如管理用户可以查看公告时间信息,删除已经失效的公告信息记录等操作,公告信息管理界面设计如图5-12所示。

图5-12公告信息管理界面

5.10轮播图管理

通过设计的轮播图管理功能模块,管理用户可以对相关的轮播图信息进行管理,比如管理用户可以查看轮播图名称信息,删除已经失效的轮播图信息记录等操作,轮播图管理界面设计如图5-13所示。

图5-13轮播图管理界面

代码实现:

/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
    
    @Autowired
    private UserService userService;
    
    @Autowired
    private TokenService tokenService;

    /**
     * 登录
     */
    @IgnoreAuth
    @PostMapping(value = "/login")
    public R login(String username, String password, String role, HttpServletRequest request) {
        UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
        if(user != null){
            if(!user.getRole().equals(role)){
                return R.error("权限不正常");
            }
            if(user==null || !user.getPassword().equals(password)) {
                return R.error("账号或密码不正确");
            }
            String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
            return R.ok().put("token", token);
        }else{
            return R.error("账号或密码或权限不对");
        }

    }
    
    /**
     * 注册
     */
    @IgnoreAuth
    @PostMapping(value = "/register")
    public R register(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
        if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
            return R.error("用户已存在");
        }
        userService.insert(user);
        return R.ok();
    }

    /**
     * 退出
     */
    @GetMapping(value = "logout")
    public R logout(HttpServletRequest request) {
        request.getSession().invalidate();
        return R.ok("退出成功");
    }
    
    /**
     * 密码重置
     */
    @IgnoreAuth
    @RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
        UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
        if(user==null) {
            return R.error("账号不存在");
        }
        user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
    
    /**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
        PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
        Integer id = (Integer)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }

    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
        if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
            return R.error("用户已存在");
        }
        userService.insert(user);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
        userService.updateById(user);//全部更新
        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Integer[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

论文参考:

源码获取:

大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻

 精彩专栏推荐订阅下方专栏👇🏻

2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅

Java项目精品实战案例《100套》

Java微信小程序项目实战《100套》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/983617.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kubernetes入门 十四、存储管理

目录 临时存储hostPathEmptyDir NFS 挂载安装NFS配置文件 PV和PVC概述PV 的回收策略PV 的访问模式PV 的状态使用PV和PVC生命周期 动态供应StorageClass动态供应流程NFS 动态供应案例 临时存储 Kubernetes 支持很多类型的卷。 Pod可以同时使用任意数目的卷类型。 临时卷类型的…

centroen 23版本换界面了

旧版本 新版本 没有与操作系统一起打包的ISO文件了&#xff0c;要么先安装系统&#xff0c;再安装Centreon&#xff0c;要么用pve导入OVF文件

美客多平台经营秘籍:为何测评补单操作是必要的?

许多经营美客多平台的商家有一种观念&#xff0c;他们认为美客多平台的规则与亚马逊有所区别。在美客多上&#xff0c;店铺比产品更重要&#xff0c;而且平台的竞争相对较小。因此&#xff0c;他们认为在美客多平台进行补单操作是不必要的。 然而&#xff0c;根据美客多平台的…

在 S/4HANA、ECC 和 ERP 上轻松扩展或简化和自动化您的 SAP WM 到移动环境

为您的 SAP WM 提供完整的原生 SAP GUI 适用于 iOS、Android 和手持式 Scanguns 的 Liquid UI 基于原生渠道架构 &#xff08;NCA&#xff09; 构建&#xff0c;可原生连接到您的 SAP WM&#xff0c;同时保留 SAP GUI 事务的丰富性。它使您能够直接从移动设备访问 MIGO、MI04、…

数据库 范式化和反范式化

第一范式 1NF 主要确保数据表中每个字段的值必须具有原子性&#xff0c;也就是说数据表中每个字段的值为不可再次拆分的最小数据单元 第二范式 2NF 在满足第一范式的基础上&#xff0c;还要满足数据表里的每一条数据记录&#xff0c;都是可唯一标识的&#xff0c;而且所有非…

线性代数的学习和整理18:什么是维度,什么是秩?秩的各种定理秩的计算 (计算部分未完成)

目录 0 问题引出&#xff1a;什么是秩&#xff1f; 概念备注&#xff1a; 1 先厘清&#xff1a;什么是维数&#xff1f; 1.1 真实世界的维度数 1.2 向量空间的维数 1.2.1 向量空间&#xff0c;就是一组最大线性无关的向量组/基张成的空间 1.3 向量α的维数 1.3.1 向量的…

苹果证书分类及作用详解,助力开发者高效管理应用程序

转载&#xff1a;苹果证书的作用及分类详解 摘要&#xff1a;本文将详细介绍苹果证书的作用及分类&#xff0c;包括企业证书、开发者证书、 推送证书、分发证书和MDM证书&#xff0c;帮助开发者了解如何正确使用和管理这些证书&#xff0c; 提升应用程序的开发和发布效率。 引…

供配电技术

最近&#xff0c;在上一门关于供配电技术的课程&#xff0c;虽说与自动化的关系并不是十分大&#xff0c;但对于扩展知识面还是有很大用处的&#xff0c;不至于与其他人交谈此方面的相关知识的时候&#xff0c;一头雾水。

网络丢包问题,敢不敢这样定位?

下午好&#xff0c;我的网工朋友。 所谓丢包&#xff0c;是指在网络数据的收发过程中&#xff0c;由于种种原因&#xff0c;数据包还没传输到应用程序中&#xff0c;就被丢弃了。 这些被丢弃包的数量&#xff0c;除以总的传输包数&#xff0c;也就是我们常说的丢包率。 丢包…

胖小酱为什么天上会打雷?

很久很久以前&#xff0c;上帝并不是住在天上的&#xff0c;而是和人们住在一起的。他们相处融洽&#xff0c;生活很快乐。 人们都很尊敬上帝&#xff0c;天冷的时候&#xff0c;送柴禾给他取暖;缺吃的时候&#xff0c;送食物给他充饥。 上帝呢&#xff0c;对大家是一视同仁&am…

SolidKits.BOMs高级BOM及属性批量导入工具个人版上线了

Solidkits自主研发的SolidKits.BOMs工具可以在不启动SOLIDWORKS的情况下&#xff0c;一键导出各种BOM&#xff0c;如结构BOM、总汇总BOM、分类汇总BOM等&#xff0c;相比于人工编制BOM表&#xff0c;不仅能提升出BOM的效率&#xff0c;还可大幅降低出错几率。 为满足广大个人客…

Zabbix -- 创建监控项及触发器

目录 一、创建监控项 二、创建触发器 三、测试触发器 一、创建监控项 添加带参数的监控项&#xff0c;以磁盘使用率为例子。 vfs.fs.size[/,pused] 表示显示当前磁盘所占用的百分比 vfs.fs.size[/,used] 表示显示当前磁盘所占用的空间&#xff0c;单位为B vfs.fs.size[/,f…

mybatis执行自带update方法遇到的坑

1. 背景 项目上需要对已有oracle数据源进行兼容改造&#xff0c;兼容doris数据源。改造过程中发现&#xff0c;启动项目时有一个类内部执行updateByPrimaryKeySelective时异常。把日志打印出的SQL复制到doris数据库执行&#xff0c;提示的错误与项目内一致&#xff0c;说明错误…

半导体制造工艺(一)光刻

在这里开个新专题&#xff0c;主要详细描述半导体制造整个流程中所用到的设备工艺步骤。 在集成电路制造工艺中&#xff0c;光刻是决定集成器件集成度的核心工序&#xff0c;该工序的作用是将图形信息从掩模版&#xff08;也称掩膜版&#xff09;上保真传输、转印到半导体材料衬…

手机也能轻松搭建个人博客,使用安卓Termux+Hexo建立自己的网站

文章目录 前言 1.安装 Hexo2.安装cpolar3.远程访问4.固定公网地址 前言 Hexo 是一个用 Nodejs 编写的快速、简洁且高效的博客框架。Hexo 使用 Markdown 解析文章&#xff0c;在几秒内&#xff0c;即可利用靓丽的主题生成静态网页。 下面介绍在Termux中安装个人hexo博客并结合…

技术漫谈|IVR通用开发框架简说

IVR为Interactive Voice Response的缩写&#xff0c;意为交互式语音应答&#xff08;系统&#xff09;。它可以应答客户的呼叫&#xff0c;然后为呼叫者提供语音导航或自助服务&#xff0c;呼叫者可通过按键输入或使用语音命令进行选择。随后&#xff0c;IVR可通过呼叫路由将呼…

解决Vue3.0以上+Vite项目打包后低版本浏览器兼容性问题

文章目录 一、Vite在低版本浏览器中运行遇到的问题二、浏览器兼容性三、官方解决方案&#xff1a;使用vitejs/plugin-legacy插件1)、安装插件2)、在vite.config.js中配置 四、vitejs/plugin-legacy插件&#xff0c;在打包过程中做了什么 一、Vite在低版本浏览器中运行遇到的问题…

CVE-2023-3836:大华智慧园区综合管理平台任意文件上传漏洞复现

文章目录 CVE-2023-3836&#xff1a;大华智慧园区综合管理平台任意文件上传漏洞复现0x01 前言0x02 漏洞描述0x03 影响范围0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 CVE-2023-3836&#xff1a;大华智慧园区综合管理平台任意文件上传漏洞复现 0x01 前言 免责声…

python 文创产品商城推荐网上购物系统设计与实现vue

随着Internet的发展&#xff0c;人们的日常生活已经离不开网络。未来人们的生活与工作将变得越来越数字化、网络化和电子化。网上销售&#xff0c;它将是直接市场营销的最新形式。本论文是以构建文创产品推荐系统为目标&#xff0c;使用 django制作&#xff0c;由前台用户购物、…