首页 > 其他分享 >Vue3基于SpringBoot的高校学生实习综合服务平台设计与实现

Vue3基于SpringBoot的高校学生实习综合服务平台设计与实现

时间:2024-09-30 18:48:42浏览次数:10  
标签:username return SpringBoot 高校学生 系统 user Vue3 userService public

目录

功能和开发技术介绍

本课题拟采用主流的MVC架构、开发工具idea、java语言编程、MySQL数据库技术、Vue.js技术和现代网络通讯技术来完成。
1.前后端分离项目,前端使用vue3框架
2.后端使用java编程语言的springboot框架
3.项目中登录模块用到token
4.源码包部署调试
5.每个笔记均有对应源码
数据库:mysql5.7/8.0或以上版本
持久化层使用Mybatis,项目管理Maven3,
项目中登录模块用到token
本文介绍了使用SpringBoot作为后端框架,Vue作为前端框架,MyBatis-Plus进行持久层开 。详细描述了系统测试的目的、功能测试案例,包括登录验证和用户管理,以及数据库设计。
前端:vue3
开发工具:IDEA 或者eclipse都支持
编程语言: java
框架:springboot/ssm都支持
jdk版本:jdk1.8以上均可
数据库: mysql 版本不限
数据库工具:Navicat/SQLyog都可以
技术范围:SpringBoot、Nodejs、Python、Vue、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习、SSM、HLMT、Jsp、PHP等设计与开发。

前后端分离Vue3+SpringBoot

具体实现截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

开发核心技术介绍:

Java具有面向对象编程的特点,通过可视化开发可以快速的创建一个应用程序,减少程序员的工作量,Java是一种简洁、现代、通用的语言,具有垃圾收集机制,通过内存释放技术完成各种定义类型的回收,具有较强的编程能力。Java编译后生成Dll文件,其他程序可以通过对应的接口实现操作[15]。
Java具有典型的继承、封装多态特征,可以使用类和接口,并进行输入输出数据流,支持多线程和反射、以及网络编程。Java语言的多态提供方法中的和复写,Java语言不仅仅可以支持后台框架的开发,也可以与web前端进行融合[16]。
Spring Boot的一个主要优点是它的自动配置功能。它可以根据你的项目中的依赖关系自动配置应用程序。这使得配置应用程序变得非常容易,因为你不需要手动配置每个依赖项。
Spring Boot内置了Tomcat、Jetty和Undertow等服务器,这意味着你可以直接使用它们而不需要额外的安装和配置。
Mybatis是基于Mysql的一个优秀的持久层框架,其几乎将所有连接Java语言需要配置的地方包括JDBC都封装起来,不在向JDBC那样繁琐,让开发人员专注于编写SQL语句,其内部页添加了许多自己的规则,以便让Spring框架与其无缝结合。

技术创新点vue3和vue2的区别:

Vue2和Vue3的主要区别包括:性能提升、体积减小、响应式原理改变、支持碎片、Composition API的引入、更好的TypeScript支持、生命周期钩子的变化、指令与插槽的差异、以及一些其他的新特性 Vue3相比Vue2具有以下改进:可以没有根标签,减少内存使用;采用组合式API,使代码更有序;生命周期钩子函数有所变化;v-if和v-for的优先级不同;diff算法优化,减少不必要的节点比较;响应式原理通过Proxy实现,性能提升。Vue3还具有更快的渲染性能、更小的体积、更好的TypeScript支持和更灵活的组合式API。

创建前:beforeCreate -> 使用setup()
创建后:created -> 使用setup()
挂载前:beforeMount -> onBeforeMount
挂载后:mounted -> onMounted
更新前:beforeUpdate -> onBeforeUpdate
更新后:updated -> onUpdated
销毁前:beforeDestroy -> onBeforeUnmount
销毁后:destroyed -> onUnmounted
异常捕获:errorCaptured -> one rrorCaptured
被激活:onActivated 被包含在中的组件,会多出两个生命周期钩子函数。被激活时执行。
切换:onDeactivated 比如从 A 组件,切换到 B 组件,A 组件消失时执行
Vue 3 使用了 Proxy 来重写响应式系统,相比 Vue 2 的 Object.defineProperty,更加直观和强大。
在 Vue 3 中,可以在更深的层次上追踪响应式变量的变化,使得开发者能够更准确地监听数据变化。

核心代码部分展示

/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UsersController{
	
	@Autowired
	private UsersService userService;
		@Autowired
	private TokenService tokenService;
	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UsersEntity user = userService.selectOne(new EntityWrapper<UsersEntity>().eq("username", username));
		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);
	}
		/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UsersEntity user){
    	if(userService.selectOne(new EntityWrapper<UsersEntity>().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){
    	UsersEntity user = userService.selectOne(new EntityWrapper<UsersEntity>().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,UsersEntity user){
        EntityWrapper<UsersEntity> ew = new EntityWrapper<UsersEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UsersEntity user){
       	EntityWrapper<UsersEntity> ew = new EntityWrapper<UsersEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UsersEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }

非功能需求分析

在开发本系统时,需要满足基本的功能需求之外,还需要确定其非功能需求,保证性能和质量。如果没有非功能需求,也会严重影响系统的实施过程的要求。本系统从性能、安全、可操作性等方面考虑,来进行非功能性需求分析。
性能需求是开发系统的重要指标。包括响应速度,系统的并发用户访问量。在设计系统时,充分考虑到当前系统可能存在的最高并发数量,并由此选择对应的硬件服务器和对应的宽带容量,上传下载的速率等问题。对于系统的查询速度已经控制在两秒之内。同时考虑当遇到高并发时是否会影响查询时间。
安全性需求,对于所有的管理系统来说,数据安全都是非常重要的,要严格控制其数据的安全性,防止外泄和被不法分子盗取。所以,系统应该设置不同的操作权限,并加强数据库的加密管理和访问控制,并定期对数据进行维护,及时进行数据备份。
可操作性需求指的是系统设计时需要考虑针对不同的用户是否可以让对方明确的知道如何操作流程。对于后台管理来说也要考虑操作的便捷性和录入数据的简单性,不能因为管理系统给用户带来操作负担。另外,对于系统的录入也需要进行提示或者警告。比如某一项表单需要友好的进行提示用户是否需要录入,以及如何录入不同类型的数据,引导用户正确的去操作,尽最大可能的方便用户进行操作。

系统开发流程

MyBatis进行数据库持久化操作,完成数据处理,负责增删改查的基本操作。本系统通过DAO层完成持久层的设计,在持久层中定义实现的接口。接口方法只是定义业务处理,不具体实现,使得目录结构层次清晰,然后在Spring层中对接口实现。数据持久层对数据库操作是通过配置文件进行配置。DAO层进来数据结构和数据库数据的表对应。
Spring层是作为系统的业务层实现业务逻辑。在本系统中通过Service层来实现业务逻辑,Service通过接口方法和实现类进行设计,在接口中定义了各个操作类,具体的实现在Service层中定义的接口进行调用,Service实现通用的业务逻辑。
表现层是通过SpringMVC进行实现,在本系统中创建Controller层,负责业务模块的跳转。在Controller流程中,调用Service层的方法来实现对应的业务逻辑。同时通过配置文件来实现不同的控制器。
最后View层是实现页面的视图,通过创建Vue3页面和数据显示来完成操作,View层和控制层相互结合。视图层通过页面的跳转进入到Controller层,完成数据的处理并返回到视图层。
通过创建springboot框架,可以进行分模块开发,因为Dao层和Service层相互独立。不同的成员负责不同的模块,即可同步开发。而视图层和Controller层关系比较紧密,需要协作开发。

系统运行步骤

(1) 创建好数据库并导入,
(2) 创建后台Springboot三层架构(controller,service,mapper层)并启动测试
(3) 导入并编译前端代码vue:网站和后台管理
编译:npm install
试运行:npm run dev

软件测试

系统的主要内容包括页面测试、导航测试、技术环境、界面风格和可靠性测试。页面测试,在内容中查看是否符合规范、整体是否完整,功能菜单是否可以操作。导航栏目中提供系统功能的导航,快速的定位到功能页。界面风格,界面中的字体大小是否合适,颜色是否协调。可靠性测试,确保系统在多人并发运行访问系统后,在合理的时间范围内响应。系统的数据符合传输安全。依据软件和互联网数据的要求,采用保护措施,确保系统的可靠性。管理员的权限划分合理,分配用户对应的操作范围区分,区分不同类别用户的身份。然后做好数据备份,避免因软硬件软硬件故障造成的数据丢失。

源码获取

标签:username,return,SpringBoot,高校学生,系统,user,Vue3,userService,public
From: https://blog.csdn.net/qq_840612233/article/details/142662412

相关文章

  • vue基于SpringBoot的在线个性化电影推荐与观影社交平台的设计与实现
    目录毕设制作流程功能和技术介绍系统实现截图开发核心技术介绍:使用说明开发步骤编译运行代码执行流程核心代码部分展示可行性分析软件测试详细视频演示源码获取毕设制作流程(1)与指导老师确定系统主要功能;(2)做需求分析及功能模块划分;(3)指导老师通过后,设计出用例图,E-R......
  • springboot+vue在线医院服务系统【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着互联网技术的迅猛发展,医疗行业也迎来了数字化转型的重要契机。传统的医院服务模式往往存在排队时间长、信息不透明、管理效率低下等问题,严重影响了患者的就医体验和医疗资源的有效利用。在线医院服务系统的出现,旨在通过信息化手段......
  • springboot+vue在线审稿系统【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着互联网技术的迅猛发展,各行各业都在逐步实现数字化转型,学术期刊和出版行业也不例外。传统的审稿过程通常涉及繁琐的邮件往来、纸质文档传递以及人工管理,这不仅效率低下,还容易出错。为了提高审稿效率,缩短出版周期,并减轻编辑部和审稿......
  • springboot+vue在线音乐系统【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展和数字娱乐产业的崛起,音乐已成为人们日常生活中不可或缺的一部分。在线音乐系统作为数字音乐传播的重要平台,不仅改变了传统音乐产业的格局,也为广大音乐爱好者提供了更加便捷、丰富的音乐体验。近年来,随着智能......
  • springboot+vue招聘信息数据分析与可视化平台【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景在当今数字化和信息化的时代背景下,招聘行业正经历着前所未有的变革。随着互联网技术的飞速发展,招聘信息的发布和获取方式日益多样化,但同时也带来了信息过载和筛选困难的问题。企业HR和求职者需要在海量的招聘信息中快速定位到符合自身......
  • [vue] vue3封装clip动画, 实现元素的国度效果
    import{nextTick}from"vue";//数据类型functiongetDataType(){returnObject.prototype.toString.call(arguments[0]).slice(8,-1).toLowerCase();}/****@param{*}els单元素节点或者元素节点集合*@param{*}fn数据变更的函数,通过调用函数导致......
  • 基于springboot hive旅游数据的分析与应用
    基于springboothive旅游数据的分析与应用【085】代码代写程序代做代编网页爬虫脚本自动化安装调试项目设计技术和工具环境: 主用技术:JAVA、SpringBoot、MySQL、MyBatis、Vue、Nodejs等开发工具:IDEA、VisualStudioCode,没有vscode的也可以命令行运行。(运行前端)、Na......
  • 基于SpringBoot的网上租赁服务:设计与实现
    第2章关键技术简介2.1Java技术Java是一种非常常用的编程语言,在全球编程语言排行版上总是前三。在方兴未艾的计算机技术发展历程中,Java的身影无处不在,并且拥有旺盛的生命力。Java的跨平台能力十分强大,只需一次编译,任何地方都可以运行。除此之外,它还拥有简单的语法和实用......
  • SpringBoot技术栈:打造下一代网上租赁系统
    第2章关键技术简介2.1Java技术Java是一种非常常用的编程语言,在全球编程语言排行版上总是前三。在方兴未艾的计算机技术发展历程中,Java的身影无处不在,并且拥有旺盛的生命力。Java的跨平台能力十分强大,只需一次编译,任何地方都可以运行。除此之外,它还拥有简单的语法和实用......
  • 基于SpringBoot的网上在线订餐系统
    前言......