spring中遇到的问题
文章平均质量分 55
罗拉尔哆啦A梦
我好菜我好菜啊
展开
-
springboot整合chatgpt,并且让其可以记录上下文
整合很简单,不过需要几个小条件1.必须要有openai官方的key2.国内需要有代理服务器或者国外的服务器把项目部署出去也没问题我没有使用spring的springAI,听说很方便,日后有机会去体验体验,我今天用了两种方式整合了gpt1.这个巨巨巨方便,整合gpt,可以跟着官网的快速入门走,一下就解决了先导入maven依赖然后我直接写接口xxxxxxxxxxxxxxx自己替换成自己的key哈。结束,到这里就可以直接使用gpt了,自己去postman测试一下就行。2.直接给官网api发请求。原创 2024-05-22 21:17:28 · 873 阅读 · 0 评论 -
Certbot免费证书的安装,使用,自动续期
但是下载可能还是会出毛病,没法下载epel-release,可以自己去官网下,然后放到linux进行安装。可以走到3就结束,1如果wget没法就直接访问后面的官网,去下载rpm文件,上传到linux中也行。首先你得先确认你得linux是那个操作系统,可以用这几个命令试一下。两个弄证书的方式有一丢丢小区别,自己都看一下。把这个1改成0就可以关闭了。然后跟着这两走就没什么问题了。原创 2024-05-09 15:23:29 · 272 阅读 · 0 评论 -
springboot整合s3,用ImageIO进行图片格式转换
这一句根据你不同得web容器可能会有不一样得效果,一般是tomcat没什么大毛病,但是我这次用的undertow ,就有一点小坑。原因是ImageIO.wite方法在中调用的私有方法getWriter寻找合适的ImageWriter时不仅与formatName相关,还是输入的原图有关,造成getWriter方法找不到对应的ImageWriter。但是我想要改装一下,把图片格式都变成jpg,我使用的是java得imageIO类来处理。上次用laravel进行了一些s3得整合,可以看出来其实蛮简单得。原创 2024-05-09 14:57:13 · 434 阅读 · 0 评论 -
laravel视频对接aws
其实挺明显的,选了PutObject,得到的s3Url就是用来上传的,GetObject则是获取的url(如果你的s3存储同是允许共有访问的,你就可以直接通过返回的url进行访问,否则只能通过s3Url进行访问)。有了加权的url前端就可以直接使用这个加权的url来进行文件的上传,并且我亲自测试,上传2,3个g的文件也不会出问题。当然,控制台那边的存储同需要可以被公共访问才可以,下面会讲到。本次对接文件上传,目标是实现超级大文件的上传任务,可能就是4~5个g的视频文件,折腾了蛮久熟悉s3,因此记录一下。原创 2024-04-26 18:15:28 · 871 阅读 · 1 评论 -
springboot发送邮件
指定发件人得时候,可以给发件人改成自己想要的字符串,类似于,将xxx替换成自己想要的字符串。这里不指定properties.mail.smtp.port的话在windons下面可以直接发送,但是到我linux上面就没法了,我猜测不写的话可能就会默认到25号端口,但是我linux又没法连上25号端口,只能 连上587,因此我手动指定。很久之前就想写一个总结的,一直没写,今天刚好又碰见了发送邮箱验证码的需求,刚好记录一波。大家可以自己测试一下,否则java是抓异常得一直等到超时才会抓到,很浪费时间!原创 2024-04-12 16:48:19 · 260 阅读 · 0 评论 -
博客评论回复03
其中ancestorId和case语句里面的toid对应的参数16,其实就是对应的顶层id。至于为什么要把toId等于顶层id的username和avatar变成null,是因为如果回复的顶层id就不需要显示成回复谁的形式,直接放null前端方便些。接着之前写的,之前返回的数据集按道理来说渲染出来还是丑丑的,因此这次我看着抖音的评论样子,自己瞎写了一通,不过也算是模仿出来了虽然肯定没有抖音写的好。第一个,根据作品id,查询出某个作品对应的最顶层评论以及评论的数量。因此其实就对应了两个sql的查询。原创 2024-04-07 11:03:39 · 214 阅读 · 0 评论 -
springboot通过threadLocal+参数解析器实现保存当前用户登录信息
首先先介绍一下threadLocal。原创 2024-03-29 16:38:57 · 1025 阅读 · 0 评论 -
springboot实现文件上传
我本地运行出来确实是我项目的根目录,但是上到服务器,打出来的就是/,也就是linux的根目录,因此我决定以"/home/ec2-user/www/wwwroot/online_exam" 这种定值的方式取代System.getProperty("user.dir"),否则我的fileStorage目录就会建立在/这个目录下面,然后根据url访问就失效了。第三点是我添加了一个附件表,防止重复照片的存入消耗内存,毕竟不是存在三方文件系统上,自己买的系统还是省着点,而且还可以提升一丢丢的效率。原创 2024-03-22 15:49:23 · 1693 阅读 · 0 评论 -
npm i 报错 npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED
npm淘宝的镜像https过期了,取消掉严格https验证就行。原创 2024-01-31 09:34:57 · 431 阅读 · 1 评论 -
请求时设置了Header请求和token可是后台接收不到,然后一直报跨域错误
最近项目出了一个疑难杂症,恶心死我。请求方法为 GET、POST、HEAD,请求头header中无自定义的请求头信息,请求类型Content-Type 为 text/plain、multipart/form-data、application/x-www-form-urlencoded 的请求都是简单请求。浏览器根据这些请求方法和请求类型将请求划分为简单请求和非简单请求。请求方法为 PUT、DELETE 的 AJAX 请求、发送 JSON 格式的 AJAX 请求、带自定义头的 AJAX 请求都是非简单请求。原创 2024-01-29 11:44:33 · 980 阅读 · 0 评论 -
博客评论回复02
至于为什么vo不返回Long而是String,是因为我JPA的BaseEntity的id生成器,生成的id超过Long的范围了,如果直接Long返回出去会发生精度缺失被迫只能返回String了。当然,这种方法需要前端配合你才可以做到,在查询的时候传入顶层的父评论id,然后存入数据库才可以。上次那个递归评论始终不如前端的愿,只能另寻他路,于是想到了一个比较低端的做法,任然还是记录一下。其中findFather和findson。传入的dto对象就类似于这种。然后就是返给前端的vo。最后就是贴出数据格式。原创 2024-01-26 12:24:35 · 391 阅读 · 1 评论 -
博客评论回复01
然后代码我只给一个service的代码,因为其实controller也就单纯调用了service中的getAllComments方法,看明白service中的方法就没啥大毛病了。考虑到回复都是递归进行的,因此我们有必要给java entity类创建一个自定义字段children。代码是gitee上面一位大佬的示例项目,感兴趣可以拉下来研究研究。今天看node项目,发现短视频应用居然没有评论回复功能?我就自己去了解了一下,不过实现方式用的java。最后,希望大家可以根据代码写出自己的业务逻辑。原创 2023-12-13 17:36:36 · 364 阅读 · 0 评论 -
使用nvm中遇到的各种奇葩问题
其次安装好了,我们会下载对应的node版本,这个nvm会自带帮我们下载好对于的npm版本,但是这里需要注意,他下载的很可能不是匹配的版本,比如我下的18.8.0,他给我下的npm版本是8.几来着,我搞忘了。1.其中需要注意的是node_global和node_cache包的位置一定不要搞错了,需要在你自己的nodejs目录下面,配置环境变量也是需要在其下面!4.其中,NVM有关的目录一般是装好nvm就自己配置好了,主要是关于node的一些设置需要没问题!npm需要设置淘宝源,之后下东西就会快很多。原创 2023-12-07 10:00:05 · 428 阅读 · 1 评论 -
Maven
- 定义属性值 -->-- 引用属性值 -->如果properties在父工程中定义,那么在子工程可直接引用-- 引用属性值 -->原创 2023-11-26 17:10:18 · 801 阅读 · 0 评论 -
动态sql
最近,使用若依框架进行开发的时候,发现若依使用了大量的动态sql,我自己又习惯用mybatis-plus,导致我动态sql基本上全都忘却了,借此机会复习巩固一下动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。原创 2023-10-16 14:40:22 · 42 阅读 · 0 评论 -
You have an error in your SQL syntax; check the manual that corresponds to your MySQL
其中列名分别是nowtime和data(这里用反单引号),写入数据库的值是current_time和字符A(这里用单引号)。java中键值用(‘)单引号,列名(`)反单引号。insertData就是负责执行这句SQL语句的,他最后返回受影响的条数,这个不用管。但是以上都是基于sql没有写错来纠正的,所以确保sql没问题再看看自己有没有以上错误。第一种写法从语法将没问题,但是就是报错,直到我写到了第二种才发现问题。最近做项目又给报错了,找了一会感觉错误非常巴卡,还是记录一下比较好。3.待执行语句不能分开写!原创 2023-10-05 10:25:34 · 2412 阅读 · 0 评论 -
centos7 网卡重启失败
和 NetworkManager 服务有冲突,这个好解决,直接关闭 NetworkManger 服务就好了, service NetworkManager stop,并且禁止开机启动 chkconfig NetworkManager off。See "systemctl status network.service" and "journalctl -xe" for details. [失败]书写是否正确,以及个别单词的大小写以及拼错字母等原因。首先最基本的就是先检查一下自己网卡配置是否写错。原创 2023-09-15 15:55:33 · 1752 阅读 · 0 评论 -
idea2022 copy configuration修改端口号
点击Modify options --> Program argments。但是由于idea2022做了比较大的改变所以,操作会略有改变。依然是点击copy configucation进入后。然后就会出现一个输入框,在里面填写端口信息就行了。原创 2023-09-13 11:45:54 · 1097 阅读 · 0 评论 -
java.sql.SQLException: Access denied for user ‘root‘@‘localhost‘ (using password: YES)
首先第一步,先把密码和用户名删除重新写入,因为可能其中参杂一些空格或者特殊字符,眼睛看不出来,但是可能就是会一直存在。目前不清楚具体原因为什么加上双引号就可以连接了,不过如果碰见这个问题也可以试试!碰见这个问题两次了,一直报sql异常,去检查yml,发现密码和用户名是正确的。然后启动访问端口发现正确了。原创 2023-09-13 10:25:58 · 151 阅读 · 0 评论 -
mybatis的批量插入
看网上知道了有大概三种方法优势:JDBC 中的 PreparedStatement 有预编译功能,预编译之后会缓存起来。之后SQL执行会比较快,且 JDBC可以开启批处理,这个批处理执行非常给力。劣势:这种方式插入大量数据时,效率非常底下,不推荐。很多时候我们的 SQL 服务器和应用服务器可能并不是同一台,所以必须要考虑网络 IO。如果网络 IO 比较费时间的话,那么可能会拖慢 SQL 执行的速度。原创 2023-08-19 18:29:23 · 1387 阅读 · 0 评论 -
maven依赖冲突问题
但是有些包,版本变化大没法去做向下兼容,高版本删了低版本的某些类或者某些方法,那么这个时候就不能一股脑的去选择高版本,但也不能选择低版本。一般我们在解决依赖冲突的时候,都会选择保留jar高的版本,因为大部分jar在升级的时候都会做到向下兼容,所以只要保留高的版本就不会有什么问题。我们发现最终的版本最终已经变成3.17版本,现在再启动就不会报错了,成功解决依赖冲突问题。依赖冲突是指项目依赖的某一个jar包,有多个不同的版本,因而造成了包版本冲突。需要注意的是,声明exclusion的时候只需要。原创 2023-08-18 16:41:55 · 126 阅读 · 1 评论 -
springboot项目打war包部署到本地tomcat
8.找到并打开"D:\tomcat - 01\apache-tomcat-8.5.68\conf\server.xml"3.添加tomcat依赖,或者添加servlet-api依赖,二者用其一,我使用是添加tomcat依赖。7.将打好的war包移动到你本地tomcat的webapps目录下。1.修改打包方式,默认是jar包,加了才是war包。6.打好的包在自己的target目录下面。2.排除内置的tomcat。9.启动tomcat即可。5.用maven开始打包。原创 2023-08-16 11:55:35 · 78 阅读 · 1 评论 -
lombok常用注解
lombok是一个插件,用途是使用注解给你类里面的字段,自动的加上属性,构造器,ToString方法,Equals方法等等,比较方便的一点是,你在更改字段的时候,lombok会立即发生改变以保持和你代码的一致性。@Data这个是非常常用的注解,这个注解其实是五个注解的合体:(提供类的get、set、EqualsAndHashCode、toString方法)(5).它默认不调用父类的方法,只使用本类定义的属性进行操作,可以使用callSuper=true来解决,会在@Data中进行讲解。原创 2023-08-15 10:18:11 · 80 阅读 · 1 评论 -
在springboot中用easyexcel实现execl的导入导出功能
TableName,@TableField则是mybatisplus的注解,@TableField是为了实现自动填充。4.由于是用的mybatisplus,并且业务需求不复杂,实现dao层。5.service和serviceimpl层。6.controller层,导出导入都在里面。@Data是Lombook的注解。先看数据,由于是学习数据量很小。最后给大家看一下我的目录结构。1.导入maven依赖。原创 2023-08-15 09:51:07 · 170 阅读 · 1 评论 -
Swagger
Swagger能够自动生成完善的RESTful API文档,同时并根据后台代码的修改同步更新,同时提供完整的测试页面来调试API。说白了就是可以让我们清楚得看见每个controller下的接口,并且可以进行测试。最后访问:http://localhost:8080/swagger-ui.html即可。Swagger提供了一系列注解来描述接口,包括接口说明,请求方法,请求参数....原创 2023-08-05 09:15:14 · 38 阅读 · 1 评论 -
springboot热部署
热部署配置完成,之后可以直接修改直接去接口测试了,不用每次都stop and return 了。每次改了controller都需要重新运行一下boot项目,还得去刷新浏览器,太麻烦了。去网上看了一下,热部署可以很好解决。原创 2023-08-04 15:31:17 · 29 阅读 · 1 评论 -
springboot中版本不对
然后查了一下,发现原来springboot版本高了,不和我老古董jdk适配,浅浅的改一下吧。什么鬼居然还有问题,可恶啊可恶啊。后面经过查询才知道是版本对不上。创建项目碰到了个这种问题。原创 2023-08-04 15:21:48 · 83 阅读 · 1 评论