
Java
文章平均质量分 71
java
Cau1i
这个作者很懒,什么都没留下…
展开
-
Sa-Token实现网关统一鉴权和内部服务外网隔离
无论使用哪种序列化方式,你都必须为项目提供一个 Redis 实例化方案,因为我们需要和各个服务通过Redis来同步数据。优点:兼容性好,缺点:Session 序列化后基本不可读,对开发者来讲等同于乱码。优点:Session 序列化后可读性强,可灵活手动修改,缺点:兼容性稍差。注意:切不可直接在一个项目里同时引入这两个依赖,否则会造成项目无法启动。有时候我们需要在一个服务调用另一个服务的接口,这也是需要添加。根据不同的整合规则,插件提供了三种不同的模式,你需要。参数,这个参数会被转发到子服务。原创 2023-09-05 15:26:12 · 2744 阅读 · 1 评论 -
RabbitMQ反序列化失败:Failed to convert message
把这个对象放到公共模块,然后生产者和消费者服务引入这个公共模块,生产者和消费者发送和消费时共用一个对象。这样完全保证了两个项目中JavaBean是一致的,所以能解决反序列失败的问题。这个异常信息表明在处理消息时出现了问题,具体地说,它是由于消息内容的反序列化失败引起的。缺点:局限性太小,这种模式生产者和消费者只能在同一个微服务下才能使用。对象,内容是一模一样的包括序列化,可就是消费者接收时报序列化错误。根据异常信息的内容,问题似乎是由于反序列化消息内容时找不到类。我目前生产者和消费者都有一个。原创 2023-09-05 15:22:40 · 7524 阅读 · 1 评论 -
RabbitMQ实现数据库与ElasticSearch的数据同步和分享文件过期处理
只是提供思路,代码不是很完整,直接复制运行不了。最后面有完整网盘项目代码。原创 2023-09-04 19:27:50 · 1652 阅读 · 0 评论 -
Spring Cloud Gateway网关工程搭建遇到的问题
中翻译一下意思就是:在类路径上找到的Spring MVC,此时它与Spring Cloud网关不兼容。因为spring cloud gateway是基于webflux的,如果非要web支持的话需要导入。项目是一个Spring Boot项目,在启动的时候会去加载它的配置,其中有一个叫做。根据上面描述(Description)中信息了解到。模块的jar依赖去掉。原创 2023-09-03 10:55:46 · 271 阅读 · 0 评论 -
java.io.FileNotFoundException: file:/xxx/xxx.jar!/BOOT-INF/classes!/xxx.xlsx (没有那个文件或目录)
一般都是固定表头,然后填充数据,相当于一维的。因为表头是动态的,所以第二部分数据相当于二维的,需要将表头和表格数据分别进行填充。EasyExcel的填充方式是通过模板进行填充导出的,那我们可以导出两次,第一次用下的模板文件将Excel导出到本地,此时还能立马查看、验证第一次导出的结果是否正确,接着以第一次导出的Excel文件,作为第二次导出的模板,最后再导出需要的Excel表格文件,最后有必要的话再删除第一次导出的Excel文件。模板:第一次导出:第二次导出:2.4 本地运行测试导出结果可以看到临时文件原创 2022-12-05 15:45:52 · 2225 阅读 · 1 评论 -
基于EasyExcel模板填充方式进行二次导出(动态表头、合并单元格问题处理)
合并后的样子:使用EasyExcel利用**模板填充的方式,以一个单元格为最小单位,把数据全部查出来**,然后将数据处理成一行一行的形式进行填充,碰到相同的数据,就进行合并单元格。有一部分表头数据的字段没有落表,在实际数据库中都属于一个字段,例如下图:光学、电学、声学实际上都属于,而不是、、。可以使用的进行对数据进行处理和存储,处理后的样子:一般都是固定表头,然后填充数据,相当于一维的。因为表头是动态的,所以第二部分数据相当于二维的,需要将表头和表格数据分别进行填充。EasyExcel的填充方式是通过模板进原创 2022-12-02 11:30:12 · 15367 阅读 · 5 评论 -
使用JMeter进行活动报名并发测试,使用乐观锁解决活动报名并发问题
当用户报名成功后,会增加实际报名人数,当实际报名人数到达最大报名人数时,无法继续报名。创建CSV数据文件设置,将带有1000个csv文件导入。但是会出现并发问题,实际报名人数会超过最大报名人数。添加相应的协议、IP、端口、HTTP请求和路径等。添加同步定时器,保证同时触发。创建一个Http请求默认值。活动报名并发问题已解决。...原创 2022-09-01 17:32:57 · 771 阅读 · 0 评论 -
实现Java定时任务
线程调度任务以供将来在后台线程中执行的功能。任务可以安排一次执行,或定期重复执行。对应于每个Timer对象是单个后台线程,用于依次执行所有定时器的所有任务。计时器任务应该快速完成。如果一个定时器任务需要花费的时间很多,它会“计时”计时器的任务执行线程。这可能会延迟随后的任务的执行,这些任务在(和)如果违规任务最后完成时,可能会“束起来”并快速执行。默认情况下,任务执行线程不作为守护程序线程运行,因此它能够使应用程序终止。如果想要快速终止定时器的任务执行线程,则可以调用定时器的cancel方法。...原创 2022-08-30 11:33:08 · 252 阅读 · 0 评论 -
前端和数据库时间差8小时
如果查询mysql时间和本地不一致,使用以下语句设置mysql时区。数据库中的内容,我们自己输入的结果相差八小时,创建时间反而正常了。输出结果,我们自己输入的结果正常,创建时间相差8小时。时间和你本地当前时间一致后。在实体类中关于时间类型字段的。查看MySQL时间。原创 2022-06-01 21:16:35 · 2623 阅读 · 0 评论 -
mysql关键字引发错误:org.springframework.jdbc.BadSqlGrammarException
最后发现问题:粗心大意,字段不能是MySQL。查询,发现查询成功。原创 2022-05-16 21:33:06 · 1220 阅读 · 0 评论 -
使用Maven+Spring Boot+MyBatis-Plus项目编译后target下没有生成xml的解决方法
报错:Unsatisfied dependency expressed through bean property ‘sqlSessionFactory’。在pom.xml中放行mapper.xml,在Maven的build中加入以下配置。maven选择clean和campile重新编译即可。配置application.yml文件。发现在target下没找到xml。原创 2022-05-11 21:14:26 · 2772 阅读 · 0 评论 -
JAVA使用Calendar类获取日期
设置为这个月中的第1天: cal.set(Calendar.DAY_OF_MONTH, 1);设置为这个月中的第0天: cal.set(Calendar.DAY_OF_MONTH, 0);先调到下2个月:cal1.add(Calendar.MONTH, 2);先调到下个月:cal1.add(Calendar.MONTH, 1);理解为:下2个月的第1天 - 1天 = 下个月最后1天。如果当前为5-31,那么,加一个月的话就是6-30;例子2:获取下个月最后1天。例子1:获取下个月第1天。原创 2022-05-11 15:38:32 · 4573 阅读 · 0 评论 -
Spring Boot+Vue+ElementUI实现文件的上传和下载到本地 并将 文件信息存入数据库
/全局统一返回结果类 @Data public class Result < T > {//返回码 private Integer code;//返回消息 private String message;//返回数据 private T data;if(data!} //操作成功 public static < T > Result < T > ok(T data) {原创 2022-05-03 13:14:15 · 7571 阅读 · 14 评论 -
Spring Boot集成JWT实现登录token验证
/全局异常处理 @ControllerAdvice public class GlobalExceptionHandler {} //自定义异常处理方法 @ExceptionHandler(MyException . class) @ResponseBody public Result error(MyException e) {} }//自定义全局异常类 @Data public class MyException extends RuntimeException {原创 2022-04-25 20:57:59 · 1220 阅读 · 0 评论 -
Mybatis-Plus代码生成器
找到controller.java.vm文件。复制到resources下的templates文件夹中。import $!{{entity };# if($ {#end# if($ {#end# if($ {//查询${entity}表所有信息 @GetMapping("findAll${entity}") public Result findAll$ {//调用service的方法 List < $ {原创 2022-04-25 20:30:13 · 1335 阅读 · 0 评论 -
Mybatis-Plus中@TableField失效问题及解决
mybatisplus默认开启驼峰命名,所以一般不需要使用@TableField注解,但是我在项目中就算加上了该注解,在日志中的select语句中也显示是departmentId。而自己指定了QueryWrapper的select属性后就仅仅是属性值而没有了别名。分析:默认情况下Mybatis-Plus会根据@TableFiled生成别名,原创 2022-04-25 19:45:50 · 8775 阅读 · 0 评论 -
Spring Boot整合Redis给邮箱发送验证码
/全局统一返回结果类 @Data public class Result < T > {//返回码 private Integer code;//返回消息 private String message;//返回数据 private T data;if(data!} //操作成功 public static < T > Result < T > ok(T data) {原创 2022-04-09 12:09:06 · 1792 阅读 · 3 评论 -
使用Docker安装部署Nacos,Spring Boot项目使用Nacos作为配置中心
我的springboot版本是2.6.4,而springcloud版本是Hoxton.RELEASE。查看mvnrepository,将springcloud改成2021.0.1版本后重新启动项目。项目启动失败,并且没有启动日志,如果把nacos的依赖注释就可以启动。在Nacos管理界面的服务列表中可以看到注册的服务。在配置文件添加nacos服务地址。进入到启动的naocs容器中。在模块的pom文件中引入依赖。在项目的启动类添加注解。查看nacos镜像。启动naocs镜像。进入管理界面,成功。原创 2022-03-31 23:20:25 · 2320 阅读 · 1 评论 -
Spring Boot启动多项目服务端口被占用:Web server failed to start. Port XXXX was already in use
原来是我其中一个项目添加了另一个项目的依赖,直接删除该依赖之后重新启动就行。最后发现有个字段名找不到,并且这个字段名同时出现在两个项目中。(一般人应该遇不到的问题,在此记录下)我的两个项目的端口是不同的,一个是。结束进程,之后重新启动项目。查询被占用的端口的pid。原创 2022-03-31 00:29:22 · 2217 阅读 · 1 评论 -
idea连接mysql报错显示:Server returns invalid timezone
IDEA连接mysql报红:。直接翻译:服务器返回无效时区。转到“高级”选项卡并设置“服务器时区”属性。最快的解决方法:直接在URL写上:修改配置文件(需重启MySQL服务)直接在命令行设置时区原创 2022-03-11 17:47:27 · 1860 阅读 · 0 评论 -
xml配置文件中mysql数据库字段不出现提示信息解决办法
xml配置文件中mysql数据库字段不出现提示信息解决办法。原创 2022-03-11 17:41:43 · 1893 阅读 · 1 评论 -
Project ‘org.springframework.boot:spring-boot-starter-parent:2.2.2.RELEASE‘ not found
pom.xml文件中parent版本变红,主运行文件和测试变红,不能运行。出现Project ‘org.springframework.boot:spring-boot-starter-parent:2.2.2.RELEASE’ not found。原创 2021-09-08 22:29:39 · 2273 阅读 · 1 评论