- 博客(126)
- 收藏
- 关注
原创 IDEA终端中使用Maven和右侧边栏使用IDEA的Maven插件有什么区别
二.IDEA的Maven插件栏:这里使用的是你在Setting中设置的Maven路径,如果你新安装的idea没有配置,就会使用idea默认的Maven版本,这也就是为什么有时你会在终端install项目成功使用工具栏却失败或是反之。一.在终端中的maven实际上读取的是电脑中高级系统设置中PATH的路径中配置的Maven,打印mvn -v 即可查看这里的mvn使用的是哪个。
2025-11-20 14:31:38
361
原创 在使用maven进行compile时报错:系统资源不足
修改MAVEN_OPTS的-Xms值由524m改为为1024m,仍然不够就增大到2048(注意:修改环境变量后需要重启idea才能生效)
2025-11-18 16:48:24
158
原创 在Springboot中处理log4j2日志文件
日志切割指的是将一个持续增长的、庞大的日志文件,按照某种规则分割成多个较小的、易于管理的文件。(在本配置中我们将日志按天切割,同时限制了单个日志文件不能超过64MB)效果如图:切割策略有两个,每天零点会将昨天的日志文件加日期保存然后生成一个新的日志文件,当天如果单个日志文件超出规定(例如本配置的64MB),会自动将此日志文件加日期保存并生成一个新的日志文件。
2025-10-15 15:17:42
516
1
原创 logback日志处理文档
这行代码代表单个日志文件的最大大小不能超过64MB,当超过64MB时,会生成新的日志文件如图所示这一段的内容表示滚动删除策略,如果日志超过30天或者该级别日志总大小超过上限,会删除创建时间最早的日志-- 基于大小和时间的滚动策略 -->-- 文件名模式:logs/app-info-日期.序号.log -->-- 单个文件最大64MB -->-- 保留30天的历史文件 -->-- 所有日志文件总大小上限 -->比如我在测试的时候14.0版本的info日志就引入超过总空间大小而被删除。
2025-10-14 13:53:19
274
原创 EXPLAIN对数据库sql语句进行优化
EXPLAIN 的作用就是给你的 SQL 语句做“体检”。快速诊断:查询慢是因为没走索引吗?(看type和key量化分析:需要扫描多少数据?(看rows定位细节:有没有昂贵的临时表或文件排序?(看Extra最佳实践:在开发阶段,对核心的、复杂的 SQL 语句习惯性地使用EXPLAIN进行检查,是保证数据库性能的最有效手段之一。
2025-09-27 22:54:05
883
原创 中州养老:Websocket实现报警通知
WebSocket 是基于 TCP 的一种新的网络协议。它实现了浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接, 并进行双向数据传输。HTTP协议和WebSocket协议对比:HTTP是短连接WebSocket是长连接HTTP通信是单向的,基于请求响应模式WebSocket支持双向通信HTTP和WebSocket底层都是TCP连接WebSocket缺点: 服务器长期维护长连接需要一定的成本 各个浏览器支持程度不一。
2025-09-17 19:11:52
635
原创 中州养老:完成智能床位的开发
找到DeviceDataServiceImpl类中的batchInsertDeviceData方法,把每次上报的数据存储到redis中,由于redis是可以覆盖旧数据,所以在redis中存储的永远都是最新的数据。目前设备的绑定都是房间或者是床位 比如:智能烟雾报警绑定的位置是房间,睡眠监测带绑定的位置是床位 在设备(device)表中同时有三个字段确定绑定的位置。目的是为了展示哪个楼层中的房间或床位绑定了设备,需要展示的楼层编号 比如下图中,只有3楼、4楼、5楼、1楼绑定了设备,那就只展示这些楼层。
2025-09-17 16:56:13
612
原创 中州养老:异步处理数据
AMQP全称Advanced Message Queuing Protocol 是一种网络协议,用于在应用程序之间传递消息.它是一种开放标准的消息传递协议,可以在不同的系统之间实现可靠,安全,高效的消息传递,协议的实现包括RabbitMQ等多种消息队列软件。对于设备数据的转发,华为云平台提供了对应的接口文档,我们使用其它的公司的产品多参考接口文档就对了。每个产品可以绑定不同的topic来进行消息分类,比如有手表topic,烟雾topic。在IOT的官方文档中,提供了接收数据的解决方案,接入官网的SDK。
2025-09-15 18:20:48
516
原创 中州养老:华为云设备管理接口开发全流程
service层通过Controller层传入的iotId查询数据库中的设备信息,调用华为的物联网接口查询华为云中设备的实时信息,将数据封装到deviceVo中返回给前端。对于新增设备操作,实际上这些参数与华为云产品我们添加设备时的参数是一样的。servic层,我们调用华为云的接口请求获得产品的列表存入到Redis中。通过传入的状态作为mp的条件查询我们想要的姓名,年龄等。点击同步数据时,要把华为云的数据拉取到我们的系统中。对于我们要实现的功能,华为云提供了丰富的接口。测试客户端能否连接成功。
2025-09-11 22:09:05
777
1
原创 中州养老:设备管理介绍
我们熟悉了IOT平台的基本概念以及基本操作后,可以现在来分析后台系统的功能需求,在后台管理系统中,是需要自己维护设备,不需要创建产品,因为产品直接物联网平台创建添加即可。在华为云的sdk客户端将配置类中的设备初始化替换为自己的地址。设备详情中的四个属性就是我们创建物模型的四个属性。设备->所有设备->注册设备,在产品中注册设备。烟雾报警器需要绑定到某个房间。需要单独维护设备的原因是,设备的秘钥和id记得保存好。智能手表需要绑定某个老人。,才能做到精准的监控。
2025-09-10 22:36:08
229
原创 中州养老项目:登录功能项目鉴权
因为我们目前的项目是前后端分离的项目,我们可以通过用户分配的资源来确定,当前登录人是否有权限访问该资源inteceptor拦截器是Spring框架的拦截器,在请求进入Controller前和数据从Controller层出来返回给前端这段逻辑从前端获取token解析token,并获取用户数据,从Redis中取出该用户对应能够访问的Url列表,与当前请求url进行对比得出能否访问的结论@Component@Autowired@Autowired。
2025-09-08 21:17:43
896
原创 中州养老项目:登录认证接口(接口开发完整流程)
我们首先根据用户名查询用户,查看是否为空,为空则表示该用户不存在,然后查看该用户是否被禁用,被禁用则无法登录,之后判断密码是否正确,我们按照自己设置的解密方式解密对比,我们用脱敏后的userVO生成JWT返回给前端。Controller层,我们的登录接口接收前端传来的用户名,密码。
2025-09-08 12:45:26
440
原创 中州养老项目:利用Redis解决权限接口响应慢的问题
先导入Redis的依赖,这个依赖导入后相当于把RedisTemplet注入到Spring容器中,使用的时候通过@Autowired导入相应依赖就好了,同时在xml文章中配置Redis客户端的基本信息,比如端口号,密码等。实际运行环境中数据是查多修改少,我们要保持数据库与缓存的一致性,只需要在查询的时候把数据添加到缓存中,在增删改的时候删除redis缓存中的数据即可。yml文件中配置redis,这个redis是在Spring框架下的,所以在Spring下添加一个redis配置即可。重新hashCode方法。
2025-09-06 12:38:20
278
原创 中州养老:角色管理的角色分页查询
我们如果想要借助AI来帮助写接口,我们就需要将接口四要素,请求地址,请求方式,请求是参数,返回结果完整的给到它。Controller层我们接收前端传来的角色名(用dto接收,来查询角色名对应的菜单),以及分页数量和每页大小。当面对一个陌生的需求时,我们可以把原型图发送给AI,让AI帮我们分析出需求,表结构和接口文档。如果我们的项目中已经有了相似的接口,可以让AI仿照这个接口写,这样格式更加规范。分析一个接口,只要关注接口的四要素:请求方式,请求路径,请求参数,返回结果。
2025-09-04 17:17:06
157
原创 中州养老:资源添加功能
在Service层,我们先用hutool工具包的工具类将Dto转换为实体类(方便我们进行数据库查询),然后对父资源进行查询。那么我们首先在Controller接口中定义添加语句的接口。判断资源编号是否大于3的逻辑(其实就是去除末尾的0)菜单配置和按钮配置共用一个接口,两者都是添加资源。之后进行资源编号的创建。创建新的资源编号的逻辑。
2025-09-03 21:11:45
227
原创 中州养老项目:实现多级菜单效果
在Controller层,我们接收前端传来的ResourceDto,这个Dto其实是可有可无的,因为实际是一个空的,里面的参数是我们在业务层自定义的。在Service层,我们构建查询条件,将dto的参数从常量类中取出,这体现了设计模式的可扩展性。查询满足条件的所有节点,关键是parent_resouce_no这个字段根据前缀连接匹配。这是一个算法,递归筛选出对应菜单的子资源,以及对应子资源的资源,直到全部遍历出来。100001是一级目录,100001001是二级目录以此类推。
2025-09-03 18:02:47
146
原创 中州养老项目:RBAC权限系统
10000当一级,100001**当二级菜单,这样我们可以层次分明的知道每一级菜单对应的资源有哪些,同时也能查询某一级菜单下的所有子节点。Controller层生命我们接口文档只使用DTO的parentResourceDto和ResourceType。将对应的mapper和mapper.xml文件放到sercurity模块中,这个模块是比较通用的一个模块。权限系统是指当不同的用户,比如用户,管理员,商家等不同的人员使用软件时展示出不同的页面。mapper层id=方法名,resultMap就是返回结果。
2025-09-03 17:41:31
271
原创 Java:将视频上传到腾讯云并通过腾讯云点播播放
我们借助腾讯云依赖提供的cos客户端,将腾讯云的id,秘钥等配置信息传入,再将文件信息配置到cos客户端,发送请求,生成这个视频的访问路径。传入一个videoFile也就是视频字节流,返回腾讯云点播的视频保存url。同理,借助VOD客户端上传对应视频。
2025-08-20 18:27:00
771
原创 LeetCode:无重复字符的最长子串
3.那么头指针如何动态变化呢,我们可以用一个HashMap集合记录每个元素上一次出现的位置,我们遇到重复元素,让头指针指向该重复元素在Map中记录的索引的下一个位置。1.我们只需要最长数组的长度即可,因此我们实际上是要把可能得情况全部求出来并取其中的最大值,因此滑动数组是最优解。要注意取start和重复元素索引位置下一位中的最大值,防止start头指针回退。,请你找出其中不含有重复字符的。因为无重复字符的最长子串是。因为无重复字符的最长子串是。因为无重复字符的最长子串是。,所以其长度为 3。
2025-08-18 23:13:31
419
原创 LeetCode:接雨水
上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。3.存水看小,我们可以按照列进行计算,同时左右最高柱子的高度是动态变化的。的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。2.每一列的柱子的储水量和最柱子的最大高度相关。2.双指针可以从两边向中间计算。个非负整数表示每个宽度为。1.左右两边的柱子无法储水。1.柱子在两边不会储水。
2025-08-16 20:49:38
406
原创 LeetCode:三数之和
2.这里并没有考虑到sum<0和sum>0的情况,这里有三种情况,当sum == 0时,意味着这三个数时刚刚好的,那么在去重之后要left++,right--,而sum<0说明数小了,left++,sum>0说明数大了,right--比如:如果排序后的数组,第一个数>0,那么一定不能和比它大的两个数组成三元组。找到数组中所有不重复的三数相加==0且一个索引对应的数不能用两次的三元组。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。2.找到第一个数并去重。
2025-08-15 12:00:50
577
原创 LeetCode:盛最多水的容器
图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。容器的容量=(x2 - x1)%min(height[x1],height[x2])双指针,一个从前向后,一个从后向前,两个指针谁小谁移动保证过滤掉不必要的计算。纯暴力法,从第一条线开始遍历,遍历到最后一条线,将所有情况求出来求最小值。但是实在太暴力了,题解不能答完,面试肯定也不能这么写。轴共同构成的容器可以容纳最多的水。找出其中的两条线,使得它们与。返回容器可以储存的最大水量。
2025-08-07 22:41:30
335
原创 中州养老项目:三方接口对接流程
在保证联网的情况下,我们创建一个HttpUtilTest类用来测试Hutool工具包的Http请求,在测试类给测试方法加上@Test表明这是一个测试方法,然后使用get方法向百度发送get请求。当我们的请求比较复杂,比如要加请求头之类的复杂请求方式,可以使用creatRequest来进行复杂操作请求。在我们本地项目的开发中,一般是前端作为客户端向后端发起请求,而在三方接口对接的功能实现上,我们是。我们在对接三方接口文档时,多阅读对应三方的官方文档,了解功能的实现,以及出了问题之后的处理方式。
2025-08-07 00:39:30
363
原创 Error:Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘rzk_
意思就是select语句中查询的列,要么出现在group by 中,要么用聚合函数关联。像这样,但是这样改会一宿sql语句语意。
2025-08-06 16:18:10
238
原创 实习:前端项目用VScode启动
然后npm install。然后npm run dev。展示当前node版本。安装npm所需的依赖。箭头所指是前端端口号。
2025-08-05 14:52:46
882
原创 每日一leetcode:移动零
0]作为条件,这样可以带着left和right一起移动到数组中第一个0处。这种写法只通过了28/75个用例,原因是 [0,0,1] 如果0连续,那么这种逻辑会漏掉一些0。比如 1 0 2 0 3 我们就把它变成 1 2 0 3 0 把遇到的第一个0交换到末尾。当数组的长度大于1时,我们从数组的第一个数开始遍历,遇到0,交换。移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。当数组的长度为1时,直接返回这个数组。,编写一个函数将所有。
2025-08-05 00:04:08
368
原创 MAVEN项目的配置文件的参数如何被使用的
以阿里云OSS的参数距离,yml文件中分为三层,zzyl.framework.oss。@ConfigurationProperties(prefix = "zzyl.framework.oss ") prefix要和我们第一步设计的结构相同。将配置类注入到我们需要的class中,调用get()方法就可以获得yml文件中相关的参数了。@Configuration 表明这是一个配置类。@ToString 生成toString方法。@Getter 就是get()方法。@NoArgs..无参构造方法。
2025-08-04 14:14:26
724
原创 java.lang.IllegalArgumentException: Name for argument of type [java.lang.Long] not specified
这个错误的原因是:如果当传入多个路径参数时,如果不指定PathVariable("")里面的值,Spring 在运行时无法确定路径变量。应该绑定到方法参数的哪个变量上。
2025-08-03 23:19:09
406
原创 中州养老项目:Mybatis自动填充拦截器
第一步:我们需要借助一个MybatisConfig,@configuration标志着这是一个配置类,我们需要将autoFillInterceptor放在配置类中并用@Bean注解将这个配置类交给spring容器gu。第二步:了解配置类的原理,也就是AutoFillInterceptor,这个拦截器的代码大部分是固定的我用只需要了解它的逻辑,在需要的时候复制代码并根据需求修改。功能:在新增护理项目的时候,创建人,创建时间和修改时间字段会自动拦截填充,这些公共字段可以省去我们一个一个处理的麻烦。
2025-08-02 22:32:20
433
原创 中州养老项目:新增护理项目功能实现
(一定要检查,不然就会报错),mybatis会自动将LocalDateTime对象转换为yyyy-MM-dd HH:mm:ss 格式。1.我们使用DTO来接收前段表单,能不暴露我们的后端实体类(一些私密数据不能随意展示),也可以对DTO进行数据校验和转化,同时许多字段实际我们并不会使用。由接口文档原型图可知,我们需要的参数有项目名称,价格,单位,排序,状态,以及隐藏的参数id(在业插入语句自动生成),创建人,创建时间。写成动态格式,trim会消除多余的逗号,动态sql便于我们以后复用插入代码。
2025-08-02 00:28:30
691
原创 MybatisPlus如何用wrapper语句灵活连接多查询条件
结果就会是这样,上述我们也说过了,And的优先级大于or。如果不加wrapper.or()那么默认用and连接。wrapper.and就相当于加小括号。likeright = "内容%"likeleft = "%内容"对于wrapper语句来说。like = "%内容%"eq就是等于,属于精准查询。那么生成的条件语句通过。
2025-08-01 23:00:26
670
原创 中州养老:护理项目模块分页查询功能开发过程
(注意,所有的AI工具都是辅助,ai生成的代码我们都需要检查是否符合自己的需求,并会做出必要的修改,ai只能完成我们的一些重复性代码,相当于打杂)
2025-07-29 01:08:25
582
原创 铭软MCms(低代码开发平台)的使用
首次MCms安装部署好或启动后,先登录后台,生成静态页面,这样才能正常访问前端地址,否则前端演示页面会提示404错误,修改模版或者对文章内容进行修改后,必须进行更新操作。MCms内容插件提供最基本的菜单,权限,角色,栏目,内容,静态化等常用的功能,能够帮助企业或个人快速建站。栏目设置,用来设置栏目类型,详情模板,不同栏目类型对应不同的模板,自定义类型用于扩展。文章生成好后,要进行静态化主页,文章和栏目,先生成文章,确保所有文章都能够正常加载。文章管理:左边是栏目,右边是栏目对应的文章列表。
2025-07-04 10:20:03
627
原创 使用摹客RP进行原型图的设计
好看的UI,其中图片多为设计师设计,存储在公司的元件库上,复杂交互,公开演示时常用。原型是什么:用线条,图形描绘出的产品框架,是需求或功能的具体化表象。(颜色几乎是黑白),多为产品规划及评审的阶段使用。原型图分析:草图,低保真,高保真。
2025-06-30 17:19:47
347
原创 中州养老:学会设计数据库表
先考虑字段存储长度(即业务需求),再考虑存储空间(char是固定长度的字符串,varchar是可变长度的字符串),在满足业务需求的前提下,尽可能减少资源的浪费,比如手机号长度固定就使用char字符串。基础字段:id,createTime,updateTime,createBy,UpdateBy,remark(备注)业务字段:护理计划名称,护理项目名称,期望服务时间,执行周期,执行频次,操作。基础字段:主键,创建时间,修改时间,创建人,修改人,备注。假如我们要设计一个图书管理系统,我用要想;
2025-06-29 23:34:36
611
原创 操作系统面试知识点(1):操作系统基础
(1)操作系统(OS)是管理计算机软硬件资源的程序,运行在你计算机上的所有软件都通过操作系统调用内存和磁盘等硬件(2)操作系统是硬件管理员,屏蔽了硬件的复杂性(3)操作系统的核心是内核(Kernel),负责内存硬件文件系统,以及应用程序管理区分内核和CPU:1.内核属于操作系统层面,CPU属于硬件2.CPU提供运算和处理指令的能力,内核负责系统管理。
2025-06-26 23:55:06
817
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅