看点资讯系统(前后端分离)简述及源码(一些心得)

2024-01-01 21:10

本文主要是介绍看点资讯系统(前后端分离)简述及源码(一些心得),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.项目提出背景:

随着互联网的发展,大数据时代的来临,大量的数据踊跃而出,它们被包装成各种各样的形式,比如文章,视频,新闻等,它们也被分为不同的类别,像军事,娱乐,财经等,它们分布在各种媒体网站和APP中。百度新闻,一点资讯和今日头条都已经将这些功能非常的完善了。但是随着数据越来越多,需要呈现的内容要更加的简洁方便,于是创建一个看点资讯系统。 看点资讯系统是以新闻发布,资讯展示,信息管理为主要功能的网站,提供了图文、音乐、视频等一体的资讯展示功能。主要包括前台显示和后台管理两大部分,我们采用的是前后台分离的技术,这样的话,后台不需要多大的改动,而前台可根据不同客户的需求去修改定制。

2相关技术:

springboot:

 简化新Spring应⽤的初始搭建以及开发过程.

 有几个特点是:能创建独⽴的Spring应⽤程序           简化Maven配置                 ⾃动配置Spring                            ★约定优于配置(按照约定)

 spring:                

   高性能,易于测试,可复用性强,简单轻量.                         

 模块化比较好内置单元测试,支持MVC,能很好地支持相关协议。

SpringMVC:  

SpringMVC框架是基于MVC模式,使用Java语言开发实现的一个轻量级 Web 框架。通过简单的配置,就能够让SpringMVC框架和Spring容器一起使用,SpringMVC提供了一整套完善的组件,可以直接使用。      

它的优点: 框架的配置简单又不失灵活性           代码的可重用性很高                 可扩展性好

springdata-jpa:

 Spring Data JPA 是 Spring 基于 ORM 框架、JPA 规范的基础上封装的⼀套JPA应⽤框架,可使开发者⽤极简的代码即可实现对数据的访问和操作。它提供了包括增删改查等在内的常⽤功能,使⽤ Spring Data JPA 可以极⼤提⾼开发效率!因为项目中使用了JPA,可以在实体类中配置完关系映射后,让JPA根据配置自动创建表.

数据库:

mysql是一个免费开源的关系型数据库管理系统 特点:       MySQL 是一个真正的多用户、多线程 SQL 数据库服务器。它能够快速、有效 和安全的处理大量的数据。       MySQL 的使用是非常简单的,主要目标是快速、健壮和易用       在任何平台上都能使用,占用的空间相对较小

文档管理:

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务,配置生成的在线API文档。方便前台查看!

3具备功能:  

      用户模块                                        角色模块                                        资讯模块                                        类别模块                                        评论模块

 

 

 

 

 

 部分源码:

资讯功能:

public class ArticleController {@Autowiredprivate ArticleService service;//发布资讯或者编辑资讯@ApiOperation(value = "发布资讯",notes = "传递一个json格式的资讯对象的字符串")@PostMapping("/saveArticle")public Result saveArticle(@RequestBody Article article) {service.saveOrUpdateArticle(article);return Result.success(article);}//分页查询所有资讯@ApiOperation(value = "分页查询所有资讯",notes = "不需要参数")@GetMapping("/findAllArticle")public Result findAllArticle() {Page<Article> page = service.findAll(0, 10);return Result.success(page);}//根据ID删除多个资讯信息@ApiOperation(value = "删除多个资讯",notes = "输入被删除的资讯ID(集合或者数组类型的字符串)")@DeleteMapping("/deleteArticle")public Result deleteArticle(@RequestBody List<Long> ids) {service.deleteArticleInBatch(ids);return Result.success("删除成功");}//更新资讯状态(未审核0,审核通过1,审核失败2)@ApiOperation(value = "更新资讯状态",notes = "输入要更新状态的资讯ID")@PutMapping("/updateArticleStatus")public Result updateArticleStatus(Long id,String status) {service.updateArticleStatus(id, status);return Result.success("更新状态成功");}//根据资讯id查找资讯的所有评论,并分页显示评论}

分类功能: 

@Api(tags = "分类模块")
@RestController
public class CategoryController {@Autowiredprivate CategoryService service;//查询所有分类@ApiOperation(value = "查询所有分类",notes = "不需要输入参数")@GetMapping("/findAllCategory")public Result findAllCategory() {Page<Category> ct = service.findAll(0, 3);return Result.success(ct);}//添加分类@ApiOperation(value = "添加分类",notes = "传递一个json格式的分类对象的字符串")@PostMapping("/saveCategory")public Result saveCategory(@RequestBody Category category) {service.saveOrUpdateCategory(category);return Result.success("添加成功");}//根据ID删除多个分类信息@ApiOperation(value = "删除多个分类信息",notes = "输入被删除的分类ID(集合或数组类型的字符串)")@DeleteMapping("/deleteAllCategory")public Result deleteCategory(@RequestBody List<Long> ids) {service.deleteCategoryInBatch(ids);return Result.success("删除成功");}//按序号升序查询所有分类,并进行分页@ApiOperation(value = "按序号升序查询所有分类",notes = "不需要输入参数")@GetMapping("/findAllCategorySortByNo")public Result findAllCategorySortByNo() {Page<Category> page = service.findAllSortbyno(0, 5);return Result.success(page);}//更新分类的序号@ApiOperation(value = "更新分类序号",notes = "需要更新序号的分类ID")@PutMapping("/updateNo")public Result updateCategoryNo(Long id,int no) {service.updateCategoryNo(id, no);return Result.success("更新成功");}
}

评论功能 

@Api(tags = "评论模块")
@RestController
public class CommentController {@Autowiredprivate CommentService service;//分页获取所有评论@ApiOperation(value = "查询所有评论",notes = "不需要输入参数")@GetMapping("/findAllComment")public Result findAllComment() {Page<Comment> cm = service.findAll(0, 5);return Result.success(cm);}//新增评论或者更新评论@ApiOperation(value = "添加评论",notes = "传递一个json格式的评论对象的字符串")@PostMapping("/saveComment")public Result saveComment(@RequestBody Comment comment) {service.saveOrUpdateComment(comment);return Result.success("添加成功");}//批量删除评论@ApiOperation(value = "删除多个评论",notes = "输入被删除的评论ID(集合或数组类型的字符串)")@DeleteMapping("/deleteAllComment")public Result deleteComment(@RequestBody List<Long> ids) {service.deleteCommentInBatch(ids);return Result.success("删除成功");}//根据资讯id分页获取所有评论}

角色模块 

@Api(tags = "角色模块")
@RestController
public class RoleController {@Autowiredprivate RoleService service;//注册一个角色@ApiOperation(value = "注册角色",notes = "传递一个json格式的角色对象的字符串")@PostMapping("/saveRole")public Result saveRole(@RequestBody Role role) {//调用service层方法完成注册的业务逻辑service.saveOrUpdateRole(role);return Result.success(role);}//根据角色名称查找具体的角色信息@ApiOperation(value = "查询角色",notes = "传递一个字符串型的角色名称")@ApiImplicitParams(@ApiImplicitParam(name = "name",value = "角色名称"))@GetMapping("/findRole")public Result findRoleByName(String name) {//调用service层方法完成注册的业务逻辑Role role = service.findRoleByName(name);if(role==null) {throw new ServiceException(ResultCode.USER_NOT_EXIST);}return Result.success(role);}//   查找全部的用户信息@ApiOperation(value = "分页查询全部角色",notes = "一个整数类型的页码数")@ApiImplicitParams({@ApiImplicitParam(value = "需要查看第几页的内容",name = "pageIndex")})@GetMapping("/findAllRole")public Result findAllRole(int pageIndex) {Page<Role> page =service.findAll(pageIndex, 1);return Result.success(page);}//通过ID删除单个角色信息@ApiOperation(value = "删除单个角色信息",notes = "传递被删除角色的ID")@DeleteMapping("/delete/{roleId}")public Result deleteRoleById(@PathVariable("roleId") Long roleId) {service.deleteRoleById(roleId);return Result.success("删除成功");}//通过ID删除多个角色信息@ApiOperation(value = "删除多个角色信息",notes = "传递被删除角色的ID(集合或者数组格式的字符串)")@DeleteMapping("/deleteAll")public Result deleteRole(@RequestBody List<Long> ids) {System.out.println(ids);service.deleteRoleInBatch(ids);return Result.success("删除成功");}
}

用户功能 

@Api(tags = "用户模块")
@RestController
public class UserController {@Autowiredprivate UserService service;//添加用户@ApiOperation(value="注册用户",notes="传递一个json格式的用户对象的字符串")@PostMapping("/saveUser")public Result addUser(@RequestBody User user) {service.saveOrUpdateUser(user);return Result.success(user);}//根据ID查询用户信息@ApiOperation(value = "根据ID查询用户",notes = "要查询的用户ID")@ApiImplicitParams(@ApiImplicitParam(name = "ID",value = "用户ID"))@GetMapping("/findUserById/{userId}")public Result findUserById(@PathVariable("userId") Long userId) {//调用service层方法完成注册的业务逻辑User user = service.findUserById(userId);if(user==null) {throw new ServiceException(ResultCode.USER_NOT_EXIST);}return Result.success(user);}//根据用户名查询用户@ApiOperation(value = "根据Name查询用户",notes = "要查询的用户名")@ApiImplicitParams(@ApiImplicitParam(name = "name",value = "用户名"))@GetMapping("/findUserByName")public Result findUserByName(String name) {//调用service层方法完成注册的业务逻辑User user = service.findUserByUsername(name);if(user==null) {throw new ServiceException(ResultCode.USER_NOT_EXIST);}return Result.success(user);}//查询所有的用户信息@ApiOperation(value="查询所有用户",notes = "不需要传入参数")@GetMapping("/findAllUser")public Result findAllUser(){Page<User> page = service.getAll(0, 3);return Result.success(page);}//根据ID删除单个用户信息@ApiOperation(value = "删除单个用户",notes = "被删除用户的ID")@DeleteMapping("/deleteUser/{userId}")public Result deleteUserById(@PathVariable("userId") Long userId) {service.deleteUserById(userId);return Result.success("删除成功");}//根据ID删除多个用户信息@ApiOperation(value = "删除多个用户",notes = "被删除用户的ID(集合或数组格式的字符串)")@DeleteMapping("/deleteAllUser")public Result deleteUser(@RequestBody List<Long> ids) {service.deleteUserInBatch(ids);return Result.success("删除成功");}//根据ID修改用户的状态@ApiOperation(value = "修改用户状态",notes = "要修改的用户ID")@PutMapping("/updateUser/{userId}/{status}")public Result updateUserById(@PathVariable("userId") Long userId,@PathVariable("status") String status) {service.updateUserStatus(userId,status);return Result.success("更新成功");}//用户登录@ApiOperation(value = "用户登录",notes = "输入用户名和密码")@PostMapping("/loginUser")public Result loginUser(String username,String password) {User user = service.login(username, password);if(user==null||!user.getPassword().equals(password)) {throw new ServiceException(ResultCode.USER_LOGIN_ERROR);}//判断用户状态(正常/禁用)if(user.getStatus().equals("1")) {throw new ServiceException(ResultCode.USER_STATUS_ERROR);}return Result.success(user);}
}

这篇关于看点资讯系统(前后端分离)简述及源码(一些心得)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/560525

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识