基于Java+SpringMvc+Vue求职招聘系统详细设计实现
🍅 作者主页 专业程序开发
🍅 欢迎点赞 👍 收藏 ⭐留言 📝
🍅 文末获取源码联系方式 📝
文章目录
- 基于Java+SpringMvc+Vue求职招聘系统详细设计实现
- 一、前言介绍:
- 二、系统设计:
- 2.1 系统运行环境
- 2.2 系统架构设计
- 2,3 登录时序图设计
- 三、功能截图:
- 3.1 用户登录注册模块:
- 3.2 求职招聘前台模块:
- 3.2.1 系统首页:
- 3.2.2 企业信息:
- 3.2.3 企业详情:
- 3.2.4 招聘信息:
- 3.2.5 招聘详情:
- 3.2.6 学生应聘:
- 3.2.7 招聘资讯:
- 3.2.8 招聘资讯详情:
- 3.2.9 留言反馈:
- 3.2.10 个人中心:
- 3.2.11 用户后台:
- 3.3 后台系统管理模块:
- 3.3.1 学生模块管理:
- 3.2.2 简历模块管理:
- 3.3.3 企业模块信息:
- 3.3.4 招聘模块管理:
- 3.3.5 应聘模块管理:
- 3.3.6 兼职模块评价:
- 3.3.7 公告资讯模块管理:
- 四、数据设计:
- 4.1 数据库设计原则
- 4.2 数据库实体
- 4.3 系统部分E-R图:
- 4.3.1 学生信息实体图如图所示:
- 4.3.2 企业用例图设计:
- 4.3.3 求职评价信息实体图如图所示:
- 五、关键代码实现:
- 5.1 用户登录模块:
- 5.2 springmvc配置:
- 六、项目总结:
一、前言介绍:
随着计算机网络的不断渗透,人们的生活与工作、学习的方式也在慢慢发生变化。传统的大学生兼职信息系统相关信息管理方式一般都采取人工的方式,信息的获取、整理、修改、存储等工作还停留在人工阶段。这种方式一方面需要花费大量的人力、物力和金钱,交互起来比较困难,而且会浪费时间;另一方面对用户等信息的管理,特别是随着用户数量的递增,查询、修改起来特别困难;最后由于用户等其他信息的不断增加,信息的存储也成为了难题。
一些发达国家,网络发展比较快,已经很大程度上完成了从人工到计算机管理的转变。我国计算机应用起步比较晚,而且发展区域不平衡,还有很多地区或单位使用传统的方式进行管理,但是目前计算机发展较快,包括网络也已经普及,很多单位和用户也开始慢慢接触网络管理系统。纵观这些系统主要有以下几个特点:
(1)先进性:实现网络化管理。
(2)通用性:同一行业基本都能使用。
(3)方便性:通过网络就能完成管理工作。
(4)及时性:信息更新及时。
(5)可扩展性:可根据需要进行模块的增加。
(6)安全性:对用户等信息进行加密。
截至如今,互联网已经深入人们的生活,智能手机、笔记本电脑等已经是人们获取信息的主要工具,这是一个沟通无限的时代,因此,利用网络来进行大学生兼职信息系统的管理也成为大势所趋,所以,开发一个大学生兼职信息系统是必须的。
二、系统设计:
2.1 系统运行环境
开发系统:Windows10
架构模式:MVC/前后端分离
JDK版本:Java JDK1.8
开发工具:IDEA
数据库版本: mysql5.7
数据库可视化工具: navicat for mysql
服务器:SpringBoot自带 apache tomcat
主要技术:Java,Springboot,mybatis,mysql,jquery,html,vue,elementui等
2.2 系统架构设计
2,3 登录时序图设计
三、功能截图:
3.1 用户登录注册模块:
学生在线填写学号、密码、学生姓名、学校、专业、手机、邮箱等信息进行注册、登录操作。
3.2 求职招聘前台模块:
3.2.1 系统首页:
前台首页详情页面查看首页、企业信息、招聘信息、求职资讯、留言反馈、个人中心、后台管理等功能操作。
3.2.2 企业信息:
3.2.3 企业详情:
3.2.4 招聘信息:
学生进入招聘信息可以查看企业账号、企业名称、联系人、联系电话、企业邮箱、岗位名称、图片、招聘人数、工作内容、工作地点、工作时间、岗位工资、结算方式等信息,并可以进行应聘操作。程序效果图如下图所示:
3.2.5 招聘详情:
3.2.6 学生应聘:
应聘的时候需要上传简历和填写日期等信息完成提交。
3.2.7 招聘资讯:
3.2.8 招聘资讯详情:
3.2.9 留言反馈:
3.2.10 个人中心:
3.2.11 用户后台:
3.3 后台系统管理模块:
管理员对大学生求职招聘信息系统进行查看首页、个人中心、学生管理、学生简历管理、企业管理、企业信息管理、招聘信息管理、学生应聘管理、兼职评价管理、留言板管理、系统管理并进行详情、删除、修改等操作。
管理员输入个人的用户名、密码和角色登录系统,这时候系统的数据库就会在进行查找相关的信息,如果我们输入的用户名、密码和角色不正确,数据库就会提示出错误的信息提示,同时会提示管理员重新输入自己的用户名、密码、角色,直到账号密码输入成功后,会提登录成功的信息。
3.3.1 学生模块管理:
3.2.2 简历模块管理:
3.3.3 企业模块信息:
3.3.4 招聘模块管理:
管理员对招聘信息管理进行查看企业账号、企业名称、联系人、联系电话、企业邮箱、岗位名称、图片、招聘人数、工作内容、工作地点、工作时间、岗位工资、结算方式等信息并可以进行详情、删除、修改操作。
3.3.5 应聘模块管理:
管理员对学生应聘管理进行查看企业账号、企业名称、岗位名称、工作内容、工作地点、工作时间、岗位工资、申请日期、个人简历、学号、学生姓名、手机、审核回复、审核状态等信息并可以进行详情、删除、修改操作。
3.3.6 兼职模块评价:
管理员对兼职评价管理进行查看企业账号、企业名称、岗位名称、企业评分、评价内容、评价日期、学号、学生姓名、手机、审核回复、审核状态等信息并可以进行详情、删除、修改操作。
3.3.7 公告资讯模块管理:
四、数据设计:
4.1 数据库设计原则
数据库的概念结构设计采用实体—联系(E-R)模型设计方法。E-R模型法的组成元素有:实体、属性、联系,E-R模型用E-R图表示,是提示用户工作环境中所涉及的事物,属性则是对实体特性的描述。在系统设计当中数据库起着决定性的因素。下面设计出这几个关键实体的实体—关系图。
4.2 数据库实体
数据模型中的实体(Entity),也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物”。例如,公司中的每个员工,家里中的每个家具。
4.3 系统部分E-R图:
4.3.1 学生信息实体图如图所示:
4.3.2 企业用例图设计:
4.3.3 求职评价信息实体图如图所示:
五、关键代码实现:
5.1 用户登录模块:
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().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);
}
5.2 springmvc配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<!-- 配置数据源 -->
<bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="url" value="${jdbc_url}"/>
<property name="username" value="${jdbc_username}"/>
<property name="password" value="${jdbc_password}"/>
<!-- 初始化连接大小 -->
<property name="initialSize" value="0"/>
<!-- 连接池最大使用连接数量 -->
<property name="maxActive" value="20"/>
<!-- 连接池最大空闲 -->
<property name="maxIdle" value="20"/>
<!-- 连接池最小空闲 -->
<property name="minIdle" value="0"/>
<!-- 获取连接最大等待时间 -->
<property name="maxWait" value="60000"/>
<property name="validationQuery" value="${validationQuery}"/>
<property name="testOnBorrow" value="false"/>
<property name="testOnReturn" value="false"/>
<property name="testWhileIdle" value="true"/>
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="60000"/>
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="25200000"/>
<!-- 打开removeAbandoned功能 -->
<property name="removeAbandoned" value="true"/>
<!-- 1800秒,也就是30分钟 -->
<property name="removeAbandonedTimeout" value="1800"/>
<!-- 关闭abanded连接时输出错误日志 -->
<property name="logAbandoned" value="true"/>
<!-- 监控数据库 -->
<property name="filters" value="mergeStat"/>
</bean>
<tx:advice id="transactionAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="append*" propagation="REQUIRED"/>
<tx:method name="save*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="modify*" propagation="REQUIRED"/>
<tx:method name="edit*" propagation="REQUIRED"/>
<tx:method name="insert*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="remove*" propagation="REQUIRED"/>
<tx:method name="repair" propagation="REQUIRED"/>
<tx:method name="get*" propagation="REQUIRED" read-only="true"/>
<tx:method name="find*" propagation="REQUIRED" read-only="true"/>
<tx:method name="load*" propagation="REQUIRED" read-only="true"/>
<tx:method name="search*" propagation="REQUIRED" read-only="true"/>
<tx:method name="datagrid*" propagation="REQUIRED" read-only="true"/>
<tx:method name="*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
<bean id="globalConfig" class="com.baomidou.mybatisplus.entity.GlobalConfiguration">
<!--
AUTO->`0`("数据库ID自增")
INPUT->`1`(用户输入ID")
ID_WORKER->`2`("全局唯一ID")
UUID->`3`("全局唯一ID")
-->
<property name="idType" value="2" />
<!--
MYSQL->`mysql`
ORACLE->`oracle`
DB2->`db2`
H2->`h2`
HSQL->`hsql`
SQLITE->`sqlite`
POSTGRE->`postgresql`
SQLSERVER2005->`sqlserver2005`
SQLSERVER->`sqlserver`
-->
<!-- Oracle需要添加该项 -->
<!-- <property name="dbType" value="oracle" /> -->
<!-- 全局表为下划线命名设置 true -->
<!-- <property name="dbColumnUnderline" value="true" /> -->
<property name="metaObjectHandler">
<bean class="com.config.MyMetaObjectHandler" />
</property>
</bean>
<!-- MyBatis 动态扫描 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.dao"/>
</bean>
<!-- 配置事务管理 -->
<bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 事务管理 属性 -->
<!-- 配置切面 -->
<aop:config>
<aop:pointcut id="transactionPointcut" expression="execution(* com.service..*.*(..))"/>
<aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice"/>
</aop:config>
</beans>
六、项目总结:
大学的学习生活在这个季节将结束,但是在我的生命这仅仅只是一个逗号,我将面对另一个新环境的开始。通过这次毕业设计的整个开发过程,从需求分析到具体功能实现,再到最终测试和维护的理解有了很大的进步,让我对系统开发有了更深刻的认识,对我个人的实践能力和解决问题的能力,都有了很大的帮助。这是这次毕业设计最大的收获。
首先要感谢我的指导老师,他在论文写作上,给予了我各种无私的帮助,治学严谨,严格要求,使我获得了很大的收获。老师深厚的理论知识和丰富的实践经验,都深深的影响到我,在这方面,我谨表示衷心的感谢。
其次,我还要对所有的老师和同学表示感谢,他们在我学习的过程中,都积极的提供了很多帮助,无论是专业知识,还是实践操作技能,也能够让我在论文写作中,遇到的一些难题迎刃而解。
最后,对阅读和评审本论文的各位老师表示衷心的感谢!
获取源码:
总体来说这个项目功能相对还是比较简单优秀的、适合初学者作为课程设计和毕业设计参考
🍅 查看下方微信号获取联系方式 📝
🚀🚀🚀精彩系列推荐