当前位置: 首页 > news >正文

基于SpringBoot的大学生租房系统

背景

大学生租房系统设计的目的是建立一个高效的平台,采用简洁高效的Java语言与Mysql数据库等技术,设计和开发了本大学生租房系统设计。该系统主要实现了用户和房主通过系统注册用户,登录系统后能够编辑自己的个人信息、查看首页,房屋信息,房屋评价,公告资讯,个人中心,后台管理,意见反馈等,还可以对后台进行操作,以及管理员可以进行首页,个人中心,房主管理,用户管理,房屋类型管理,房屋信息管理,预约看房管理,定金留房管理,租赁订单管理,房屋评价管理等功能的管理。计算机技术在现代管理中的应用,使计算机成为用户应用现代技术的重要工具,能够有效的解决获取信息便捷化、全面化的问题,提高效率。

系统主要包括首页,个人中心,房主管理,用户管理,房屋类型管理,房屋信息管理,预约看房管理,定金留房管理,租赁订单管理,房屋评价管理等功能的操作系统,管理员是整个系统的核心。而用户登录到系统前台,可以对首页,房屋信息,房屋评价,公告资讯,个人中心,后台管理,意见反馈等进行查看以及其他的操作。

相关技术

SpringBoot

SpringBoot是一个全新开源的轻量级框架。基于Spring4.0设计,其不仅继承了Spring框架原来有的优秀特性,而且还通过简化配置文件来进一步简化了Spring应用的整个搭建以及开发过程。另外在原本的Spring中由于随着项目的扩大导入的jar包数量越来越大,随之出现了jar包版本之间的兼容性问题,而此时SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性问题得到了很好的解决。

SpringBoot可以看做是Spring的加强版本,但实质上都是Spring的相关技术,有了这些优秀的开源框架,程序员在开发过程中将事半功倍。

vue

Vue是一套用于构建用户界面的渐进式的js框架,发布于2014年2月。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库( 如: vue-router,vue-resource,vuex)或既有项目整合。

系统设计

根据大学生租房系统的功能需求,进行系统设计。

前台功能:进入系统可以实现首页,房屋信息,房屋评价,公告资讯,个人中心,后台管理,意见反馈等功能进行操作;
后台主要是管理员,房主和用户,主要功能包括首页,个人中心,房主管理,用户管理,房屋类型管理,房屋信息管理,预约看房管理,定金留房管理,租赁订单管理,房屋评价管理等。

系统对这些功能进行整合,产生的功能结构图如下:

在这里插入图片描述

数据库设计

ER图是由实体及其关系构成的图,通过E/R图可以清楚地描述系统涉及到的实体之间的相互关系。在系统中对一些主要的几个关键实体如下图:

1.用户注册实体
用户注册实体包括用户名,密码,确认密码,姓名,手机,身份证等属性。用户注册实体图如图4-2所示:

在这里插入图片描述
2.房屋信息实体
房屋信息实体包括房屋类型,地区,位置,朝向,楼层,楼号,房屋面积,房屋设施,房屋状态,房屋租金,房主账号,房主姓名等属性。房屋信息实体图如图4-3所示:

在这里插入图片描述
数据库概念结构设计后,可以数据库概念转化实际的数据模型,这是一种数据库的逻辑结构,就是将概念结构与支持数据库管理系统的模型相符合。具体的表设计如下所示。此处只展示部分表。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

系统详细设计

系统功能模块

大学生租房系统,在系统首页可以查看首页,房屋信息,房屋评价,公告资讯,个人中心,后台管理,意见反馈等内容,并进行详细操作。
在这里插入图片描述
房屋信息,在房屋信息页面可以查看房屋类型,地区,位置,朝向,楼层,楼号,房屋面积,房屋设施,房屋状态,房屋租金,房主账号,房主姓名等内容,并可以进行预约看房,定金留房等操作。

在这里插入图片描述

管理员模块

管理员登录系统后,可以对首页,个人中心,房主管理,用户管理,房屋类型管理,房屋信息管理,预约看房管理,定金留房管理,租赁订单管理,房屋评价管理等功能进行相应的操作。

在这里插入图片描述
房主管理,在房主管理页面可以对索引,房主账号,房主姓名,性别,照片,联系电话,身份证等内容进行详情,修改和删除等操作。

在这里插入图片描述

代码实现

由于代码较多,此处只展示部分代码。

房屋信息接口

/*** 房屋信息* 后端接口* @author * @email * @date 2022-04-10 15:56:44*/
@RestController
@RequestMapping("/fangwuxinxi")
public class FangwuxinxiController {@Autowiredprivate FangwuxinxiService fangwuxinxiService;@Autowiredprivate StoreupService storeupService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,FangwuxinxiEntity fangwuxinxi,HttpServletRequest request){String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("fangzhu")) {fangwuxinxi.setFangzhuzhanghao((String)request.getSession().getAttribute("username"));}EntityWrapper<FangwuxinxiEntity> ew = new EntityWrapper<FangwuxinxiEntity>();PageUtils page = fangwuxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fangwuxinxi), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,FangwuxinxiEntity fangwuxinxi, HttpServletRequest request){EntityWrapper<FangwuxinxiEntity> ew = new EntityWrapper<FangwuxinxiEntity>();PageUtils page = fangwuxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fangwuxinxi), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( FangwuxinxiEntity fangwuxinxi){EntityWrapper<FangwuxinxiEntity> ew = new EntityWrapper<FangwuxinxiEntity>();ew.allEq(MPUtil.allEQMapPre( fangwuxinxi, "fangwuxinxi")); return R.ok().put("data", fangwuxinxiService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(FangwuxinxiEntity fangwuxinxi){EntityWrapper< FangwuxinxiEntity> ew = new EntityWrapper< FangwuxinxiEntity>();ew.allEq(MPUtil.allEQMapPre( fangwuxinxi, "fangwuxinxi")); FangwuxinxiView fangwuxinxiView =  fangwuxinxiService.selectView(ew);return R.ok("查询房屋信息成功").put("data", fangwuxinxiView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){FangwuxinxiEntity fangwuxinxi = fangwuxinxiService.selectById(id);fangwuxinxi.setClicktime(new Date());fangwuxinxiService.updateById(fangwuxinxi);return R.ok().put("data", fangwuxinxi);}/*** 前端详情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){FangwuxinxiEntity fangwuxinxi = fangwuxinxiService.selectById(id);fangwuxinxi.setClicktime(new Date());fangwuxinxiService.updateById(fangwuxinxi);return R.ok().put("data", fangwuxinxi);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody FangwuxinxiEntity fangwuxinxi, HttpServletRequest request){fangwuxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(fangwuxinxi);fangwuxinxiService.insert(fangwuxinxi);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody FangwuxinxiEntity fangwuxinxi, HttpServletRequest request){fangwuxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(fangwuxinxi);fangwuxinxiService.insert(fangwuxinxi);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody FangwuxinxiEntity fangwuxinxi, HttpServletRequest request){//ValidatorUtils.validateEntity(fangwuxinxi);fangwuxinxiService.updateById(fangwuxinxi);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){fangwuxinxiService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<FangwuxinxiEntity> wrapper = new EntityWrapper<FangwuxinxiEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("fangzhu")) {wrapper.eq("fangzhuzhanghao", (String)request.getSession().getAttribute("username"));}int count = fangwuxinxiService.selectCount(wrapper);return R.ok().put("count", count);}/*** 前端智能排序*/@IgnoreAuth@RequestMapping("/autoSort")public R autoSort(@RequestParam Map<String, Object> params,FangwuxinxiEntity fangwuxinxi, HttpServletRequest request,String pre){EntityWrapper<FangwuxinxiEntity> ew = new EntityWrapper<FangwuxinxiEntity>();Map<String, Object> newMap = new HashMap<String, Object>();Map<String, Object> param = new HashMap<String, Object>();Iterator<Map.Entry<String, Object>> it = param.entrySet().iterator();while (it.hasNext()) {Map.Entry<String, Object> entry = it.next();String key = entry.getKey();String newKey = entry.getKey();if (pre.endsWith(".")) {newMap.put(pre + newKey, entry.getValue());} else if (StringUtils.isEmpty(pre)) {newMap.put(newKey, entry.getValue());} else {newMap.put(pre + "." + newKey, entry.getValue());}}params.put("sort", "clicktime");params.put("order", "desc");PageUtils page = fangwuxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fangwuxinxi), params), params));return R.ok().put("data", page);}/*** 协同算法(按收藏推荐)*/@RequestMapping("/autoSort2")public R autoSort2(@RequestParam Map<String, Object> params,FangwuxinxiEntity fangwuxinxi, HttpServletRequest request){String userId = request.getSession().getAttribute("userId").toString();String inteltypeColumn = "fangwuleixing";List<StoreupEntity> storeups = storeupService.selectList(new EntityWrapper<StoreupEntity>().eq("type", 1).eq("userid", userId).eq("tablename", "fangwuxinxi").orderBy("addtime", false));List<String> inteltypes = new ArrayList<String>();Integer limit = params.get("limit")==null?10:Integer.parseInt(params.get("limit").toString());List<FangwuxinxiEntity> fangwuxinxiList = new ArrayList<FangwuxinxiEntity>();//去重if(storeups!=null && storeups.size()>0) {for(StoreupEntity s : storeups) {fangwuxinxiList.addAll(fangwuxinxiService.selectList(new EntityWrapper<FangwuxinxiEntity>().eq(inteltypeColumn, s.getInteltype())));}}EntityWrapper<FangwuxinxiEntity> ew = new EntityWrapper<FangwuxinxiEntity>();params.put("sort", "id");params.put("order", "desc");PageUtils page = fangwuxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fangwuxinxi), params), params));List<FangwuxinxiEntity> pageList = (List<FangwuxinxiEntity>)page.getList();if(fangwuxinxiList.size()<limit) {int toAddNum = (limit-fangwuxinxiList.size())<=pageList.size()?(limit-fangwuxinxiList.size()):pageList.size();for(FangwuxinxiEntity o1 : pageList) {boolean addFlag = true;for(FangwuxinxiEntity o2 : fangwuxinxiList) {if(o1.getId().intValue()==o2.getId().intValue()) {addFlag = false;break;}}if(addFlag) {fangwuxinxiList.add(o1);if(--toAddNum==0) break;}}}page.setList(fangwuxinxiList);return R.ok().put("data", page);}}

预约看房

/*** 预约看房* 后端接口* @author * @email * @date 2022-04-10 15:56:44*/
@RestController
@RequestMapping("/yuyuekanfang")
public class YuyuekanfangController {@Autowiredprivate YuyuekanfangService yuyuekanfangService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,YuyuekanfangEntity yuyuekanfang,HttpServletRequest request){String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("fangzhu")) {yuyuekanfang.setFangzhuzhanghao((String)request.getSession().getAttribute("username"));}if(tableName.equals("yonghu")) {yuyuekanfang.setYonghuming((String)request.getSession().getAttribute("username"));}EntityWrapper<YuyuekanfangEntity> ew = new EntityWrapper<YuyuekanfangEntity>();PageUtils page = yuyuekanfangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yuyuekanfang), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,YuyuekanfangEntity yuyuekanfang, HttpServletRequest request){EntityWrapper<YuyuekanfangEntity> ew = new EntityWrapper<YuyuekanfangEntity>();PageUtils page = yuyuekanfangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yuyuekanfang), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( YuyuekanfangEntity yuyuekanfang){EntityWrapper<YuyuekanfangEntity> ew = new EntityWrapper<YuyuekanfangEntity>();ew.allEq(MPUtil.allEQMapPre( yuyuekanfang, "yuyuekanfang")); return R.ok().put("data", yuyuekanfangService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(YuyuekanfangEntity yuyuekanfang){EntityWrapper< YuyuekanfangEntity> ew = new EntityWrapper< YuyuekanfangEntity>();ew.allEq(MPUtil.allEQMapPre( yuyuekanfang, "yuyuekanfang")); YuyuekanfangView yuyuekanfangView =  yuyuekanfangService.selectView(ew);return R.ok("查询预约看房成功").put("data", yuyuekanfangView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){YuyuekanfangEntity yuyuekanfang = yuyuekanfangService.selectById(id);return R.ok().put("data", yuyuekanfang);}/*** 前端详情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){YuyuekanfangEntity yuyuekanfang = yuyuekanfangService.selectById(id);return R.ok().put("data", yuyuekanfang);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody YuyuekanfangEntity yuyuekanfang, HttpServletRequest request){yuyuekanfang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(yuyuekanfang);yuyuekanfangService.insert(yuyuekanfang);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody YuyuekanfangEntity yuyuekanfang, HttpServletRequest request){yuyuekanfang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(yuyuekanfang);yuyuekanfangService.insert(yuyuekanfang);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody YuyuekanfangEntity yuyuekanfang, HttpServletRequest request){//ValidatorUtils.validateEntity(yuyuekanfang);yuyuekanfangService.updateById(yuyuekanfang);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){yuyuekanfangService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<YuyuekanfangEntity> wrapper = new EntityWrapper<YuyuekanfangEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("fangzhu")) {wrapper.eq("fangzhuzhanghao", (String)request.getSession().getAttribute("username"));}if(tableName.equals("yonghu")) {wrapper.eq("yonghuming", (String)request.getSession().getAttribute("username"));}int count = yuyuekanfangService.selectCount(wrapper);return R.ok().put("count", count);}}

相关文章:

基于SpringBoot的大学生租房系统

背景 大学生租房系统设计的目的是建立一个高效的平台&#xff0c;采用简洁高效的Java语言与Mysql数据库等技术&#xff0c;设计和开发了本大学生租房系统设计。该系统主要实现了用户和房主通过系统注册用户&#xff0c;登录系统后能够编辑自己的个人信息、查看首页&#xff0c…...

NetApp 利用适用于混合云的实时解决方案解决芯片设计方面的数据管理挑战

电子设计自动化 (EDA) 成本持续增加&#xff0c;而周期时间缩短。这些都为 EDA 设计带来了前所未有的挑战&#xff0c;对现代高性能工作流的需求变得从未如此巨大。 联想凌拓芯片设计行业存储解决方案及最佳实践 联想凌拓芯片行业数据存储与管理解决方案&#xff0c;针对EDA…...

Rust + WASM 入门

一、参考资料 参考官方技术文档 https://rustwasm.github.io/ 二、安装脚手架 cargo-generate # cargo-generate 用于快速生成 WASM 项目的脚手架&#xff08;类似 create-react-app&#xff09; cargo install cargo-generate 三、下载安装 wasm-pack.exe 打包工具 双击安装…...

【操作系统】内存空间

最小的操作系统Hello world 想要pmap这个进程&#xff0c;需要进程号 但是这个进程在启动的一瞬间就执行完了 用GDB把程序暂停下来&#xff0c;然后用pmap观察地址空间 用info inferiors得到gdb里的进程号 ro 可读 &#xff1a;只读数据 rx 可读可执行 &#xff1a;代码 rw 可…...

详解静态、动态代理以及应用场景

一篇不太一样的代理模式详解&#xff0c;仔细阅读&#xff0c;你一定会获取不一样的代理见解&#xff0c;而不是人云亦云。 查看了社区里关于代理模式描述&#xff0c;发现很多博客千篇一律甚至存在共性错误&#xff0c;写此文提出自己对代理的见解。 静态代理动态代理 JDKCGLi…...

ChatGLM-6B本地cpu部署

ChatGLM-6B是清华团队研发的机器人对话系统&#xff0c;类似ChatGPT&#xff0c;但是实际相差很多&#xff0c;可以当作一个简单的ChatGPT。 ChatGLM部署默认是支持GPU加速&#xff0c;内存需要32G以上。普通的机器无法运行。但是可以部署本地cpu版本。 本地部署&#xff0c;需…...

算法修炼之练气篇——练气七层

博主&#xff1a;命运之光 专栏&#xff1a;算法修炼之练气篇 前言&#xff1a;每天练习五道题&#xff0c;炼气篇大概会练习200道题左右&#xff0c;题目有C语言网上的题&#xff0c;也有洛谷上面的题&#xff0c;题目简单适合新手入门。&#xff08;代码都是命运之光自己写的…...

vscode常用快捷方式

基本编辑 Ctrl X&#xff1a;剪切当前行或选定内容 Ctrl C&#xff1a;复制当前行或选定内容 Ctrl V&#xff1a;粘贴当前行或剪切板内容 Ctrl Z&#xff1a;撤销上一步操作 Ctrl Y&#xff1a;恢复上一步撤销的操作 Ctrl F&#xff1a;在当前文件中查找内容 Ctrl H&am…...

如何压缩mp3文件大小,5分钟学会4种方法

如何压缩mp3文件大小&#xff1f;我们在开车的时候都很喜欢听歌&#xff0c;一般歌曲库里的mp3文件都很多&#xff0c;小编的就有上千首。如果我们还想要增加更多mp3文件&#xff0c;有时候就会出现内存不足的情况啦。所以我们需要压缩mp3文件大小&#xff0c;这样才能在我们手…...

从0搭建Vue3组件库(十二):引入现代前端测试框架 Vitest

Vitest 是个高性能的前端单元测试框架,它的用法其实和 Jest 差不多,但是它的性能要优于 Jest 不少,还提供了很好的 ESM 支持,同时对于使用 vite 作为构建工具的项目来说有一个好处就是可以公用同一个配置文件vite.config.js。因此本项目将会使用 Vitest 作为测试框架。 安装 …...

使用Handler创建一个Android秒表应用

本文所有代码都放在以下链接中&#xff1a;https://github.com/MADMAX110/Stopwatch 0、应用是一个有活动、布局和其他资源组成的集合。其中一个活动是应用的主活动。每个应用都有一个主活动&#xff0c;在文件AndroidManifest.xml中指定。 1、默认地&#xff0c;每个应用都在…...

node-sass安装失败解决方法总结

node-sass 安装失败的原因 npm 安装 node-sass 依赖时&#xff0c;会从 github.com 上下载 .node 文件。由于国内网络环境的问题&#xff0c;这个下载时间可能会很长&#xff0c;甚至导致超时失败。 解决方法一&#xff1a;使用淘宝镜像源&#xff08;推荐&#xff09; npm …...

C++特殊类设计

文章目录 1.设计一个类&#xff0c;不能被拷贝2.设计一个类&#xff0c;只能在堆上创建对象3.设计一个类&#xff0c;只能在栈上创建对象4.设计一个类&#xff0c;不能被继承5.设计一个类&#xff0c;只能创建一个对象5.1 单例模式5.2 饿汉模式5.3 懒汉模式5.4 两种模式的析构函…...

常用的python gpu加速方法

在使用 PyCharm进行机器学习的时候&#xff0c;我们常常需要自己创建一些函数&#xff0c;这个过程中可能会浪费一些时间&#xff0c;在这里&#xff0c;我们为大家整理了一些常用的 Python加速方法&#xff0c;希望能给大家带来帮助。 在 Python中&#xff0c;我们经常需要创建…...

SpringCloud-Gateway

什么是网关&#xff1f; 网关是一个服务&#xff0c;是访问内部系统的唯一入口&#xff0c;提供内部服务的路由中转&#xff0c;额外还可以在此基础上提供如身份验证、监控、负载均衡、限流、降级与应用检测等功能。 Spring Cloud Gateway 与 Zuul 对比 zuul1.x与zuul2.x Zu…...

【C++ qt4】操作json学习笔记

本博文源于笔者在学习c qt4操作json文件&#xff0c;qt4不支持json&#xff0c;里面的函数是json.h与jsoncpp.cpp我已经附在文末&#xff0c;大家可复制重命名用&#xff0c;里面的案例可以自己拿来敲或者直接copy也行.,一定利用好目录拖动&#xff0c;不然很长。 文章目录 1.从…...

【牛客刷题专栏】0x25:JZ24 反转链表(C语言编程题)

前言 个人推荐在牛客网刷题(点击可以跳转)&#xff0c;它登陆后会保存刷题记录进度&#xff0c;重新登录时写过的题目代码不会丢失。个人刷题练习系列专栏&#xff1a;个人CSDN牛客刷题专栏。 题目来自&#xff1a;牛客/题库 / 在线编程 / 剑指offer&#xff1a; 目录 前言问…...

useEffect

useEffect 1.依赖项是什么&#xff1f;2.useEffect怎么知道依赖项数组发生了改变&#xff1f;3.依赖项的改变会导致无限渲染吗&#xff1f;4.使用 Object.is 来比较新/旧 state 是否相等&#xff0c;浅比较&#xff1f;5.为什么要用浅比较&#xff0c;而不用深比较呢&#xff1…...

如何利用splice()和slice()方法操作数组

如何利用splice&#xff08;&#xff09;和slice&#xff08;&#xff09;方法操作数组 前言splice()是什么&#xff0c;有什么用&#xff1f;怎么用&#xff1f;slice()是什么&#xff0c;有什么用&#xff1f;怎么用&#xff1f;splice和slice方法的区别小结 前言 splice&am…...

一文读懂ChatGPT(全文由ChatGPT撰写)

最近ChatGPT爆火&#xff0c;相信大家或多或少都听说过ChatGPT。到底ChatGPT是什么&#xff1f;有什么优缺点呢&#xff1f; 今天就由ChatGPT自己来给大家答疑解惑~ 全文文案来自ChatGPT&#xff01; 01 ChatGPT是什么 ChatGPT是一种基于人工智能技术的自然语言处理系统&…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具&#xff0c;可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件&#xff0c;也不需要在线上传文件&#xff0c;保护您的隐私。 工具截图 主要特点 &#x1f680; 快速转换&#xff1a;本地转换&#xff0c;无需等待上…...