Research and Implementation of University Graduates Employment Recommendation System
With the increasing number of college graduates, the exponential growth of job recruitment information, and the increasingly fierce competition in the job market, it has become particularly important to provide personalized and effective job recommendation solutions for graduates. In this thesis, a job recommendation system for college graduates was designed and implemented. The system development was based on the B/S architecture, with J2EE platform being selected and MySQL8.1 database being used. Spring Boot and MyBatis-Plus were combined to build the application. The system was combined with a client, a middle service layer, an object-oriented data persistence layer, and a relational database at the back end. The entire system was divided into the front end and the back end. At the back end, those functions were mainly implemented: the logical processing of corresponding business, database operations, interaction and communication with the front end, user authentication mechanism as well as authorization mechanism. Additionally, log recording functions were also performed at the back end. At the front end, Vue.js was mainly used to design user interface while realizing user interaction with program, retrieving data from the back end for display to users, and providing feedback of data to the back end. This system builds a job information display platform, which can centrally display job information, reduce information redundancy, and help job seekers to job hunt more efficiently and quickly. This system not only provides a recruitment information display platform, centrally presenting the latest job openings and reducing information redundancy, but also uses intelligent algorithms to offer personalized job recommendations for job seekers. The recommendation engine automatically generates a list of job positions that match the job seeker’s needs based on their educational background, interests, career plans, and behavioral data, significantly improving the accuracy and relevance of the recommendations. The system also innovatively addresses the cold-start problem by utilizing multidimensional data analysis and social network information, helping job seekers quickly transition into job-seeking mode and reducing the impact of initial information gaps. Furthermore, the system supports high concurrency, rapid response, and scalability, making it capable of handling the fast-changing employment market and large-scale data processing demands. Through the innovative integration of these technologies, the system not only provides personalized job recommendations for graduates, but also enhances job-seeking efficiency and optimizes the match between graduates and companies through intelligent and data-driven approaches, bringing new value to student employment and corporate recruitment.
College Graduates
政府和社会各界高度重视,各种就业APP层出不穷。教育部和各级政府为更好地服务大学生,帮助大学生就业创业、了解市场、获取就业信息和职业指导,推出了“高校毕业生就业信息网”、“大学生就业服务平台”等多个网站,极大地促进了大学生就业的顺利进行。截至2024年,市场上涌现了众多招聘软件和网站。智联招聘在2019年的年度报告中宣布其注册用户数达到1.2亿,而Boss直聘在2019年宣布其用户数突破了1亿。根据艾瑞咨询研究院的估算,2021年中国的网络招聘市场规模达到了160亿,较去年增长了约48.2%。未来三年,网络招聘行业市场预计将继续保持快速增长
为解决这些问题,本系统采用了SpringBoot架构,具备强大的扩展性和灵活性,能够快速响应业务需求变化和系统负载增加。微服务架构的引入使得系统各模块可以独立拆分,进一步增强了扩展性。结合高效的MyBatis-Plus数据库操作,系统能够在处理大量数据和请求时保持高效和低延迟。在推荐算法方面,系统通过智能分析用户信息、职位标签化及结合学历、技能要求等数据,为新用户提供精准的职位推荐,减少了对用户行为数据的依赖,有效缓解冷启动问题。在界面设计上,系统采用Vue.js框架,提供流畅、响应式的用户界面,使页面更加模块化、交互更加灵活,极大提高了用户体验。系统还允许用户根据需求自定义筛选条件,实时更新推荐结果,并以简洁、直观的方式展示推荐信息,帮助用户迅速找到合适职位。此外,系统重视数据安全与隐私保护,确保用户信息的安全性。
总的来说,本系统为求职者和招聘双方提供了一个更加高效、便捷、可靠的求职平台。
本系统的用户为高校毕业生、招聘企业和系统管理员。通过本系统,学生用户可以对个人信息进行管理、查看系统通知、浏览招聘信息、查阅企业详情、对心仪企业进行收藏和投递简历,也可以对自己的应聘信息和收藏信息进行管理;企业用户可以进行企业信息管理、查看系统通知、招聘信息管理和应聘信息管理;管理员可以进行个人信息、学生信息、企业信息、系统通知和招聘信息管理等。
本项目的求职推荐系统通过先进的推荐算法、智能的数据处理和安全设计,解决了传统求职推荐系统中常见的准确性、冷启动、实时性、系统扩展性等问题。最终目的是帮助求职者更快速、更精准地找到适合的职位,同时为招聘方提供更多高质量的候选人推荐。它的核心特色在于以下五个方面:
(1) 准确性与个性化推荐
大部分求职推荐系统是基于内容的推荐系统,主要依据用户过往的行为或偏好来推荐内容,例如用户曾经浏览过哪些职位、投递过哪些岗位等。这种方法的优点在于简单、直观,但缺点是推荐结果往往缺乏多样性。冷启动问题通常是通过要求用户填写大量的偏好信息、使用社交网络数据等手段来获取信息。这些方法往往需要较长的时间来积累足够的用户数据。为了减少对用户行为数据的依赖,系统通过智能分析用户信息、职位标签化以及结合学历、技能要求等辅助数据,为新用户提供初步的职位推荐,从而有效缓解冷启动问题。本系统不仅能根据用户的求职历史和简历内容进行精准匹配,还能够综合考虑其他用户的行为和公司发布的招聘趋势进行推荐。这意味着系统不仅仅停留在用户已知的偏好上,而能发掘更多潜在的工作机会和个性化推荐。
(2) 系统扩展性与灵活性
传统的推荐系统往往依赖于固定的规则或数据集进行推荐,当数据量增大或用户需求多样化时,系统的扩展性可能面临瓶颈,尤其在处理海量数据时,传统算法可能导致性能瓶颈或延迟。本系统采用SpringBoot架构,具有较强的扩展性和灵活性,能够快速应对业务逻辑变化和系统负载增加。通过微服务架构,可以拆分系统模块,使其具有更好的可扩展性。同时,SpringBoot的集成支持了与大数据平台、机器学习平台等的快速对接,可以将系统逐步升级为基于大数据的推荐引擎。
(3) 实时性与高效率
一些传统推荐系统在数据更新和推荐计算时需要较长时间,而基于实时数据流的推荐系统能够实时根据用户行为和数据流进行更新和推荐。本求职推荐系统基于SpringBoot框架,并且后端整合了高效的MyBatis-Plus数据库操作,保证了系统在处理大量用户请求和数据时的高性能和低延迟。通过异步处理和缓存机制,系统可以保证推荐结果的实时性和响应速度,特别是对于用户的即时求职推荐请求。
(4) 用户体验与界面优化设计
部分推荐系统关注于后端的数据处理,前端界面可能较为简陋,用户交互体验不佳。而现代的推荐系统越来越注重用户体验,通过精细化设计来提升用户的满意度。因此本系统前端采用Vue.js框架进行开发,提供流畅且响应式的用户界面。Vue.js的组件化开发能够使得页面更加模块化,前端交互更加灵活,用户体验显著提高。系统支持用户自定义筛选条件,实时更新推荐信息,且推荐结果以简洁、直观的方式呈现,帮助用户快速找到符合自己需求的职位。
(5) 数据安全性与隐私保护
推荐系统可能在数据隐私保护和安全性方面存在一定的隐患,特别是在涉及到用户的个人信息、求职信息和行为数据时,需要特别注意数据的加密和安全存储。本系统注重数据隐私保护与安全性,采用严格的数据加密和访问控制措施。用户数据在存储和传输过程中都进行加密处理,确保用户信息不会泄露。此外,系统支持灵活的权限管理和身份认证,只有授权用户才能访问敏感数据,进一步提升系统的安全性。
根据系统的功能需求,本文选择Spring Boot作为开发框架。Spring是一个轻量级的框架,根本目的是为了Java开发更加简单。它对项目代码无侵入性,实现了类之间松耦合,但Spring框架仍有配置繁琐、可读性差、开发耗时等问题。为解决这些问题,Spring Boot应运而生,简化了Spring的初始搭建及开发流程,降低了开发者的使用门槛。进一步减少了开发配置的投入,使开发者可以将精力全放入逻辑业务的实现中,提高了开发效率
在求职推荐系统的实际应用中,Spring Boot提供了以下五个关键的技术优势:
(1) 快速原型开发
使用Spring Boot,开发人员可以快速搭建求职推荐系统的原型,快速验证不同推荐算法的效果,并根据反馈迭代优化系统。
(2) 高效的数据访问
通过与MyBatis的集成,Spring Boot可以帮助开发人员快速实现对招聘信息、求职者数据和历史推荐记录的高效访问,并保证系统在大规模数据访问时的性能。
(3) 灵活的服务部署
由于Spring Boot允许独立运行的JAR包打包部署,求职推荐系统可以在云端或本地服务器上灵活部署,无需过多依赖外部Web容器,简化了部署流程。
(4) 自动化测试支持
Spring Boot的集成测试功能使得开发人员可以为求职推荐系统编写自动化测试用例,验证系统的各个模块是否能够按预期工作,尤其在推荐算法优化、数据同步等复杂模块中,自动化测试能有效减少上线后的风险。
(5) 高扩展性与技术栈集成
Spring Boot的扩展性支持集成多个微服务架构组件,可以逐步构建求职推荐系统的微服务化架构。当系统规模扩大时,可以通过微服务架构将推荐引擎、用户信息管理、职位信息更新等功能模块进行独立部署和扩展。
本系统采用MyBatis-Plus框架协助开发。MyBatis-Plus是一款持久层开发框架,适合与Spring Boot搭配开发,具有配置简单、易上手、无第三方依赖、无侵入、损耗小等优点
在求职推荐系统的实际应用中,MyBatis-Plus提供了以下三个关键的技术优势:
(1) 简化数据库操作
在求职推荐系统中,通常涉及大量的数据操作,如用户注册信息、职位信息、历史推荐记录、用户行为数据等。通过集成MyBatis-Plus,开发人员能够大大简化增删改查的操作。MyBatis-Plus提供BaseMapper接口,在求职推荐系统中,开发人员可以直接通过继承该接口来完成常见的单表增删改查操作。所有这些操作无需手动编写XML文件或SQL语句,从而减少了配置和开发的复杂度。例如,在进行求职者信息查询时,开发者只需调用BaseMapper提供的selectList、selectOne等方法,无需关心SQL细节,提升了开发效率
(2) 自动化代码生成
在求职推荐系统中,通常需要处理大量的实体类和数据库表之间的映射关系。MyBatis-Plus提供了MyBatis-Plus-Generator插件,支持自动生成基础的CRUD代码,包括Controller、Service、Mapper、ServiceImpl等,并且能够根据数据库表自动生成Entity实体类。这一功能尤其适合在开发初期快速构建项目框架和进行快速原型开发。以求职推荐系统的“系统管理模块”功能为例,假设系统中有一个数据库表Gangweifenlei,该表包含Id、Addtime和Gangweileibie等字段。通过MyBatis-Plus的代码自动生成工具,可以直接根据数据库表信息生成相应的Entity、Mapper、Service等层的代码,极大地减少了重复性代码的编写,提升了开发效率。
(3) 优化查询性能
在求职推荐系统中,查询性能是至关重要的,尤其是在职位推荐的高频操作中。MyBatis-Plus为开发者提供了丰富的查询方法,如lambdaQuery、queryWrapper等,使得编写复杂查询变得更加简洁和高效。对于需要根据多个条件进行职位筛选的场景,开发人员可以使用MyBatis-Plus的QueryWrapper来动态构造查询条件,从而提高代码的可读性和可维护性。例如,在求职推荐系统中,用户可能需要根据岗位类别、工作薪资、工作地点等多维度进行职位筛选,使用QueryWrapper可以简洁地构建查询条件。
Vue.js是一个轻量级的框架,具备双向数据绑定、指令和插件化的特性。与Angular.js相比最大的优点在于,Vue.js学习成本低,本身提供的API更加简单、直观,网站反应速度快。与React相比,Vue.js在模板中提供了指令和过滤器,能更加快捷的操作DOM。此外,Vue.js在组件渲染过程中,可以自动追踪组件依赖,避免重渲染,同时不使用脏检查,运行时性能更优越
在求职推荐系统的实际应用中,Vue.js提供了以下五个关键的技术优势:
(1) 双向数据绑定与用户交互的高效性
在求职推荐系统中,用户界面通常需要实时更新以响应用户的输入,例如职位搜索、过滤条件的更改等。Vue.js的双向数据绑定特性使得这种需求变得更加简洁高效。具体来说,当用户修改职位搜索条件,例如工作地点、工作薪资、工作经验等时,Vue.js能够自动将这些变化反映到模型层,从而触发相关的职位推荐更新。反过来,当后端返回新的职位列表时,视图层也会自动更新,保持前端与后端的数据同步
(2) 组件化开发与代码复用
求职推荐系统中的页面结构通常比较复杂,包含搜索框、职位列表、推荐算法结果、用户信息展示等多个功能模块。Vue.js提供了组件化开发方式,使得每个模块都可以封装成独立的Vue组件,增强了代码的可维护性和可扩展性。例如,在求职推荐系统中,职位展示组件可以独立为一个Vue组件,负责接收职位数据并渲染到页面上;筛选条件组件则可以作为另一个组件,负责接收用户输入并传递给推荐算法。通过Vue.js的组件化特性,可以将复杂系统拆分为多个小模块,既方便开发人员进行并行开发,也便于后期的测试和维护。
(3) Vue.js的设计模式与数据管理
求职推荐系统通常需要管理大量的用户数据和职位数据。在这种情况下,Vue.js提供的MVVM架构和组件化管理模式,可以帮助开发者清晰地组织代码和数据流。MVVM模式将视图(View)和模型(Model)分离,并通过ViewModel进行双向绑定和状态管理,从而避免了数据和界面之间的复杂耦合。对于求职推荐系统,Vue.js的状态管理可以集中管理系统的全局状态,如用户信息、职位列表、搜索历史等。Vuex 可以在组件之间共享数据,确保系统在多个页面之间保持一致的状态,并且通过集中式的状态管理,简化了数据的流动和更新过程。
(4) 虚拟DOM与性能优化
求职推荐系统需要高效地渲染大量的职位数据。Vue.js的虚拟DOM机制,通过比较新旧DOM树,计算出差异并最小化更新操作,从而提高了渲染性能。对于大规模职位数据的展示,Vue.js能够高效地更新和渲染页面,避免了不必要的重渲染,提高了用户交互的响应速度
(5) 结合后端功能与认证管理
Vue.js与后端结合时,通常会采用基于Token的认证机制。这对于求职推荐系统中的用户登录、权限控制和个性化推荐至关重要
本系统的账号密码与个人信息皆为同一张表,学生用户和企业用户的账号密码可以由管理员生成分配也可以由用户自行注册。个人信息表可以衍生出招聘信息表和应聘信息表。本项目的总模型E-R图如
在用户使用本系统时,会根据用户身份生成各种表,本文主要生成了十个表,如
序号 |
表名称 |
物理表名 |
1 |
Yonghu |
学生表 |
2 |
Yingpinxinxi |
应聘信息表 |
3 |
Zhuanyezhiwei |
专业推荐职位表 |
4 |
Storeup |
收藏表 |
5 |
Users |
管理员表 |
6 |
Xuelixinxi |
学历表 |
7 |
Gangweixinxi |
岗位分类表 |
8 |
News |
公告表 |
9 |
Qiyexinxi |
企业信息表 |
10 |
Zhaopinxinxi |
招聘信息表 |
各种存储过程表中,每个表根据存储对象的不同具有不同的字段信息。全文十个表信息太多,一一列出导致篇幅太长,这里只给出“专业推荐职位表”、“企业信息表”两个表对应的字段信息作为范例。“Zhuanyezhiwei”为专业职位推荐表,这是学生用户在招聘信息界面的推荐职位列表所对应的表,其具体字段信息如
中文名称 |
职位推荐表 |
|||||
物理表名 |
Zhuanyezhiwei |
|||||
主键 |
Id |
|||||
业务主键 |
无 |
|||||
所属空间 |
Root |
|||||
索引 |
主键索引 |
|||||
字段列表 |
||||||
序号 |
中文名称 |
列名 |
数据类型 |
主键 |
非空 |
外键 |
1 |
自动生成的id |
Id |
Bigint |
是 |
是 |
否 |
2 |
专业 |
Zhuanye |
Timestamp |
否 |
是 |
否 |
3 |
推荐职位 |
Zhiwei |
Varchar |
否 |
是 |
否 |
中文名称 |
企业信息表 |
物理表名 |
Qiyexinxi |
主键 |
Id |
业务主键 |
无 |
所属空间 |
Root |
索引 |
主键索引 |
续表
字段列表 |
||||||
序号 |
中文名称 |
列名 |
数据类型 |
主键 |
非空 |
外键 |
1 |
自动生成的id |
Id |
Bigint |
是 |
是 |
否 |
2 |
添加时间 |
Addtime |
Timestamp |
否 |
否 |
否 |
3 |
企业编号 |
Qiyebianhao |
Varchar |
否 |
是 |
否 |
4 |
密码 |
Mima |
Varchar |
否 |
是 |
否 |
5 |
企业名称 |
Qiyemingcheng |
Varchar |
否 |
否 |
否 |
6 |
负责人 |
Fuzeren |
Varchar |
否 |
否 |
否 |
7 |
联系电话 |
Lianbxidianhua |
Varchar |
否 |
否 |
否 |
8 |
邮箱 |
Qiyeyouxiang |
Varchar |
否 |
否 |
否 |
本系统主要考虑两个用户群体:高校毕业生和招聘企业。简单来说高校毕业生需要录入个人信息,然后能浏览到企业发布的招聘信息并对应操作。招聘企业需要录入企业信息,然后能够发布该企业的招聘信息,还能对应聘者信息进行查阅。二者均能查收到管理员发布的系统通知并接受其管理,故本系统主要分为五个模块:登录注册、个人信息、招聘信息模块、应聘信息模块和系统管理模块,总体功能结构图如
(1) 页面设计
在本模块中,用户若是第一次登录,可以根据身份需求自行选择注册学生用户或企业用户,注册完成后可以获取账号密码,然后登录使用后续功能。登录时,需选择登录身份,管理员、学生、企业身份相互独立且不互通,各自权限也不尽相同。注册界面如
(2) 处理流程图
登录注册的流程简介:开始后,若有账户,直接登录验证身份即能进入;若无账户,先注册后再登录。登录注册模块处理流程图如
(1) 页面设计
在本模块中,所有用户可以修改密码,设置自己的个人信息,添加联系方式。学生用户可以上传上传简历,企业用户可以添加企业介绍。因此,设计了修改密码,查看修改个人信息等界面。学生端个人信息界面如
(2) 处理流程图
个人信息模块处理流程简介:首先选择修改密码或个人信息。若修改密码,需输入初始密码与新密码,若修改个人信息,则只需在对应处直接修改,最后确认提交。个人信息模块处理流程图如
系统管理模块功能权限为管理员独有。系统管理模块包含学生信息管理、企业信息管理、岗位分类管理、学历信息管理和系统管理。管理员可以对学生信息、企业信息进行“查阅”、“删除”和“修改”操作,还可以进行一系列其他操作,如发布公告、修改下拉框选项等;企业和学生端可以对公告进行浏览。
(1) 页面设计
企业端招聘信息管理界面如
(2) 处理流程图
招聘信息模块处理流程简介:企业用户发布招聘信息,管理员审核后发布。学生用户浏览后决定是否提供简历进行应聘。招聘信息模块处理流程图如
(1) 页面设计
学生端应聘信息界面设计如
(2) 处理流程示意图
应聘信息模块处理流程简介:学生提供简历应聘后企业可以查看详情并审核是否通过。应聘信息模块处理流程图如
成都信息工程大学应用数学学院鄢田云博士/副教授是本论文的指导教师和通讯教师,感谢鄢老师对本论文涉及的大创项目系统开发、论文撰写的悉心指导和修改建议,感谢成都信息工程大学教务处对本论文成果来源的大学生创新创业训练计划项目及论文版面费支持。
四川省大学生创新创业训练计划项目(S202410621115),成都信息工程大学创新创业训练计划项目(202410621323),四川省大学生创新创业训练计划项目(S202410621117),成都信息工程大学创新创业训练计划项目(202410621326)。成都信息工程大学2024年本科教学工程项目“数智项目”(在线实践平台数据可视化的数智实验教学模式创新)。