![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
springboot组件专题
文章平均质量分 60
本栏中主要为springboot使用中的相关配置类、多数据源配置(包括mybatis、mybatis-plus等)、sharding-jdbc分库分表配置等
优惠券已抵扣
余额抵扣
还需支付
¥39.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
DN金猿
大佬级别的小沙弥
展开
-
解决shiro定时检测session时报错:NoSuchMethodError: redis.clients.jedis.ScanResult.getStringCursor()
由于,redis 和ehcache 本身设置了过期时间,过期之后 session 便从 redis 或者ehcache 里面删除,因此 onExpiration 过期之后此方法永远不会被调用到。springboot项目集成shiro,配置了开启session有效性定时检测,检测时会报错,而且用户登出时redis中的session缓存并没有删除。shiro配置session失效时间,没有引用shiro-quartz ,采用默认的。由于 Shiro-redis 已经不再维护了,那么只能手动引入 jedis的。原创 2024-07-23 23:07:56 · 7 阅读 · 0 评论 -
Shiro会话管理和缓存管理
-sessionDao自定义会话管理,针对Session会话进行CRUD操作-->Ehcache是现在最流行的纯Java开源缓存框架,配置简单、结构清晰、功能强大。是Hibernate中默认CacheProvider。Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAP api等特点。原创 2024-07-23 16:57:19 · 15 阅读 · 0 评论 -
Spring Boot + Shiro 实现 Session 持久化实现思路及遗留问题
从这个角度而言,我们可以通过 Session 监听器监听 Session 创建销毁,属性变更,并将所有创建的SessionId 存储起来,当要踢出某个用户时,用户的Request请求到来时判断Request中SessionId是否一致,一致的话令Session失效,从而实现这个功能!6、上图显示,我们可以拿到所有获得的session,并且内部用户信息无误,此时我们只需要将上述代码中的(1)、(2)打开在完全遵守Shiro的应用规则下理应可以删除对应用户!在用户基础服务中,需要实现删除用户功能。原创 2024-07-23 13:19:36 · 75 阅读 · 0 评论 -
解决登陆时shiro报错:Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: kotlin/jvm
项目中添加了 jackson-module-kotlin(版本号2.13.0) 依赖后,项目启动正常,但是登陆时 shiro 过滤器报错。升级 org.jetbrains.kotlin 包依赖版本到 1.9.23 ,添加如下依赖。之前 org.jetbrains.kotlin 依赖包 的版本是 1.3.72。刷新依赖,重启项目,再登陆就不会报错了!可能是包的版本不兼容,原创 2024-07-20 12:37:19 · 40 阅读 · 0 评论 -
通过EasyCode插件生成代码后分页查询无法传参的问题
controller层的分页查询方法中参数pageRequest接收不到前台传递的int page和int size参数,并提示没有相应的构造。分页查询方法,在dao层访问数据库时,提示未找到对应的#{id},而id实际上为user对象的属性,由于有入参有两个对象。由于有入参有两个对象,需要指定两个对象的名称,且在xml文件中需要通过#{user.id}的方式获取属性。方案二(推荐)、将分页参数写在业务类user里或者写个公共父类,只传一个参数业务类就可以了。controller类方法。原创 2024-07-19 16:00:23 · 67 阅读 · 0 评论 -
解决springboot集成minio报错:The following method did not exist: okhttp3.RequestBody.create([BLokhttp3
方案二、对于使用 8.3后的版本会报错,添加okhttp3依赖包,排除minio本身的okhttp3依赖。意思是调用okhttp3中的RequestBody.create方法失败,找不到。再添加 jackson-module-kotlin 依赖。项目中没有okhttp3包或者包的路径不对。方案一、降低minio的依赖版本,如下。再启动项目就没有那条警告了!原创 2024-07-18 16:37:13 · 69 阅读 · 0 评论 -
解决springboot项目调用接口报错:No converter found for return value of type com.xx.ResponsResult
自定义的结果类一开始没有加get set方法,导致返回给浏览器时不能正常序列化。加上get/set方法后就正常了.原创 2024-07-15 19:06:33 · 27 阅读 · 0 评论 -
解决springboot整合jpa启动类报错:Not a managed type: class com.example.entity.Xxx
【代码】解决springboot整合jpa启动类报错:Not a managed type: class com.example.entity.Xxx。原创 2024-07-15 14:30:05 · 100 阅读 · 0 评论 -
SpringBoot异常:java: 无法访问org.mybatis.spring.annotation.MapperScan;类文件具有错误的版本 61.0, 应为 52.0
具体来说,这个类文件是用比你的JRE更新的Java版本编译的。在Java中,每个版本都有其对应的类文件版本号。例如,Java 8的类文件版本是52.0,而Java 17的类文件版本是61.0。当我们的JRE尝试加载一个用更高版本Java编译的类文件时,就会抛出这样的错误。IDEA报错的信息的信息中,MapperScan.class的类文件版本是61.0,这意味着它是用Java 17编译的。然而,我们的JRE期望的是版本52.0的类文件,这通常对应于Java 8。原创 2024-07-15 14:12:51 · 76 阅读 · 0 评论 -
启动spring boot项目停止 提示80端口已经被占用
4. 将【Internet information Service】和【Internet information Service可承载的Web核心】取消选择,之后重启电脑,就可以了。3. 点击【启用或关闭windows功能】我的情况是不久前打开了IIS服务导致。1. windows搜索【控制面板】2. 打开控制面板后,点击【程序】原创 2024-06-30 17:08:57 · 245 阅读 · 1 评论 -
springboot集成JPA并配置hikariCP连接池问题解决
jdbcUrl :属性标识HikariCP使用的是传统的、基于驱动管理器DriverManager的配置。将此属性于“旧”驱动程序一起使用时,可能还需要设置driverClassName属性,所以建议尽量不使用该属性。如果必须使用此属性,则用户应使用DataSource属性来配置驱动程序,笔者建议使用URL本身指定的驱动程序参数。MySQL 5.5.45+、5.6.26+和5.7.6+的要求,如果没有设置显式选项,则默认情况下必须建立SSL连接。原创 2024-06-24 21:37:51 · 98 阅读 · 0 评论 -
SpringBoot整合HikariCP数据库连接池方式
上面有连个需要注意的地方,一个是JPA所在的包名: basePackages= { “com.b505.dao” }) //设置Repository所在位置,一定不能写错,一个JPA实体类所在的位置: .packages(“com.b505.entity”) //设置实体类所在位置。这里需要注意的是,因为用了最新的SpringBoot版本,HikarICP从SpringBoot继承版本,所以JDK需要配置为1.8,如果不是将会出现错误,错误原因将会在下面展示。此错误只需要将JDK换成1.8即可。原创 2024-06-24 14:20:38 · 66 阅读 · 0 评论 -
springboot集成官方fastdfs以及fastdfs开启防盗链踩坑
访问文件需要带上生成的token以及unix时间戳,所以返回的token是token和时间戳的拼接。fastdfs是一个分布式文件系统,如果我们的fastdfs部署在外网,那么任何一个人知道了我们的上传接口,那么它就可以文件的上传和访问。或者直接复制包下的 fastdfs-client.properties.sample 或者 fdfs_client.conf.sample,到你的项目中,去掉.sample。每个组内部可以有多个成员,组成员内部保存的内容是一样的,组成员的地位是一致的,没有主从的概念。原创 2024-06-20 12:13:11 · 104 阅读 · 0 评论 -
springboot项目正常启动(包括测试)需要的最少依赖
springboot项目正常启动(包括测试)需要的最少依赖原创 2024-06-18 19:28:45 · 41 阅读 · 0 评论 -
springboot项目启动连接数据库报错:Caused by: java.net.ConnectException: Connection timed out: connect
刚开始以为是springboot版本升级导致与组件不兼容的问题,弄了半天才发现是配置文件中连接数据库的主机IP搞错了,MD怪我眼瞎,我换了一下主机IP才发现。连接数据库超时,如果是本地数据库出现问题一般是检查:jdbcUrl、用户名、密码,其中有一个错误,就会出现连接超时。我的错误就把主机IP中的168的8给弄丢了,才报了上面的错。补上8之后,数据库连接就正常了。原创 2024-06-17 11:33:36 · 82 阅读 · 0 评论 -
升级SpringBoot集成sharding-jdbc报shardingsphere.shardingjdbc.jdbc.unsupported.AbstractUnsupportedOperatio
该异常的意思是功能不支持的意思,就是`sharding-jdbc`没有完全实现Datasouce接口规范导致功能不足。刚开始以为是mysql驱动版本低不支持,于是升级了mysql驱动版本,启动还是报这个错。也可能是阿里DruidDataSource数据池版本低,于是又升级了Druid数据池的版本,依旧是报这个错。后来又升级了shardingjdbc的版本,虽然不报这个错了,但是报了个没有配置sqlSessionFactory的错误。原创 2024-06-07 13:40:03 · 91 阅读 · 1 评论 -
Gradle和Maven项目解决Spring Boot Configuration Annotation Processor not configured警告
Gradle和Maven项目解决Spring Boot Configuration Annotation Processor not configured警告原创 2024-05-23 17:12:40 · 156 阅读 · 1 评论 -
spring cloud系统安装涉及的技术说明
本系统采用的spring cloud集群技术,集群部署涉及的技术较多而且复杂,会在下面内容介绍。由于本次应用系统安装在比较安全的linux系统上,linux系统安装一般都是使用命令来进行安装,执行命令安装某个技术会把依耐的各种其它技术包通过网络自动根据安装的linux版本下载对应的版本依耐包。(不同的linux版本号对应的技术依耐包也不一样,由于依耐包过多没法做分析,只能在线安装自动识别匹配)。...原创 2022-08-12 17:28:51 · 234 阅读 · 0 评论 -
java生成二维码并与另一张图片合成,添加文字水印
效果图1.引入pom<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.3</version> </dependency> <dependency> <groupId>com..原创 2021-12-03 11:50:05 · 311 阅读 · 0 评论 -
FastDFS配置
简介技术论坛:http://bbs.chinaunix.net/forum-240-1.html资源地址:https://sourceforge.net/projects/fastdfs/源码资源:https://github.com/happyfish100FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。F...转载 2021-12-28 11:15:32 · 1210 阅读 · 0 评论 -
mybatis-plus配置分页插件和内选插件(批量更新、批量插入)
channel.basicReject(deliveryTag, true); basic.reject方法拒绝deliveryTag对应的消息,第二个参数是否requeue,true则重新入队列,否则丢弃或者进入死信队列。该方法reject后,该消费者还是会消费到该条被reject的消息。channel.basicNack(deliveryTag, false, true); basic.nack方法为不确认deliveryTag对应的消息,第二个参数是否应...原创 2021-07-27 17:50:07 · 326 阅读 · 0 评论 -
springboot中restTemplate使用方法封装
restTemplate在springboot中没有初始化实例对象,不能直接使用,所以在使用前需要先进行实例化。/** * @description :RestConfig * @author :liu * @since :2021/6/10 10:06 */@Configurationpublic class RestConfig { /** * 连接超时 */ @Value("${resttemplate.connecti.原创 2021-07-27 17:40:08 · 1071 阅读 · 0 评论 -
SpringBoot - MultipartFile文件上传及nginx配置
Controller的接收有2种方式,原理都是org.springframework.web.multipart.support.StandardMultipartHttpServletRequest @PostMapping(value = "/testMultipartFile", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public String testMultipartFile(@RequestParam(value = "file[.转载 2020-12-15 17:44:30 · 2025 阅读 · 0 评论 -
Springboot Jackson配置根本方案, 日期格式化, 时区设置生效(一)
当项目集成配置的功能越来越多, 说不准哪个配置就影响到了什么.比如你启用了EnableMvC, 默认配置文件配置的一些文件就失效了. 虽然约定大于配置,让springboot可以极简化构建, 但不熟悉内部各个组件执行原理会导致我们经常出一些莫名其妙的问题, 比如配置不生效,比如Jackson的日期格式化.debug了很久, 配置文件不生效, 直接声明ObjectMapper也不管用. 原因就在于Springboot所谓的简化是通过一系列的条件配置产生, 比如WebMvcConfigurationSu转载 2021-04-28 10:51:37 · 1361 阅读 · 0 评论 -
Springboot Jackson配置根本方案, 日期格式化, 时区设置生效(二)
关于数据库时间为datetime,前台数据不正常级时区+8问题技术标签:mysqlsqlspring1.时间数据库定义为datetime ,配置时给的是TIMESTAMP类型,前台取时间为秒数前台显示解决:为数据库时间字段为datetime 配置jdbcType=“VARCHAR” 实体类字段为String类型就ok了2.第二种方法就是,以上不改,然后再实体类的get方法上添加注解这种方式前台显示也是正常的3.我们在springboot创建项目,先后前台显示数据库时间...转载 2021-04-28 10:55:01 · 725 阅读 · 0 评论 -
微服务中如何使用RestTemplate优雅调用API(拦截器、异常处理、消息转换、带泛型响应实体)
在微服务中,rest服务互相调用是很普遍的,我们该如何优雅地调用,其实在Spring框架使用RestTemplate类可以优雅地进行rest服务互相调用,它简化了与http服务的通信方式,统一了RESTful的标准,封装了http链接,操作使用简便,还可以自定义RestTemplate所需的模式。其中:RestTemplate默认使用HttpMessageConverter实例将HTTP消息转换成POJO或者从POJO转换成HTTP消息。默认情况下会注册主mime类型的转换器,但也可以通过setMess原创 2021-06-24 15:59:14 · 234 阅读 · 0 评论 -
springboot配置swagger并修改默认地址
1. 添加依赖一定要高于2.6.1版本//api compile ('io.springfox:springfox-swagger2:2.6.1') { exclude(module: 'slf4j-log4j12') } compile ('io.springfox:springfox-swagger-ui:2.6.1') { exclude(module: 'slf4j-log4j12') } compile ('com.github.xi原创 2021-01-20 11:04:20 · 10280 阅读 · 2 评论 -
springboot2.x+mybatis+mysql中使用sharding-jdbc动态分库分表(一)
package com.lie.config.datasource;import org.springframework.beans.factory.BeanClassLoaderAware;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Component;/** * Mybatis数据源配置 * @author.原创 2020-12-25 14:30:13 · 362 阅读 · 0 评论 -
springboot2.x+mybatis-plus3.4.x+mysql中使用sharding-jdbc动态分库分表(二)
前言在项目中如果遇到输出大量的日志,使用分库分表就必不可少。前面写过一篇文章是使用springboot配置mybatis双数据源,并配置sharding jdbc分库分表。今天这篇文章主要写springboot集成mybatis-plus后,怎么配置双数据源以及配置sharding jdbc分库分表,虽然大体上相同,但是使用mybatis-plus后,有很细节的地方如果没配置是使用不了双数据源的。今天介绍的仍然是在java代码里配置双数据源,之前在网上找了很多mybatis-plus配置双数据源原创 2021-06-26 17:58:20 · 452 阅读 · 0 评论 -
Spring Boot系列(日志配置)
日志,通常不会在需求阶段作为一个功能单独提出来,也不会在产品方案中看到它的细节。但是,这丝毫不影响它在任何一个系统中的重要的地位。为了保证服务的高可用,发现问题一定要即使,解决问题一定要迅速,所以生产环境一旦出现问题,预警系统就会通过邮件、短信甚至电话的方式实施多维轰炸模式,确保相关负责人不错过每一个可能的bug。预警系统判断疑似bug大部分源于日志。比如某个微服务接口由于各种原因导致频繁调用出错,此时调用端会捕获这样的异常并打印ERROR级别的日志,当该错误日志达到一定次数出现的时候,就会触发报警转载 2020-12-23 18:25:53 · 191 阅读 · 0 评论