![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java体系
文章平均质量分 68
最难不过坚持丶渊洁
心之所向,素履以往;生如逆旅,一苇以航.
展开
-
传输对象一定要实现Serializable接口吗
先说结论,Serializable不一定需要被实现. 在对象需要持久化保存到非关系型数据,网络传输RPC调用时候我们一般使用主流的Jackson,fastjson,fastjson2,hession2,protobuf,koyo等序列化工具. 而不是JDK序列化工具. 一般的上述主流序列化框架不需要检测Serializable接口,都有自己的实现.非关系型数据库以及网络对象传输肯定要序列化,但是得看用的啥框架.一般的主流框架不需要实现Serializable,它是jdk序列化识别的标志.原创 2023-08-17 13:24:22 · 306 阅读 · 0 评论 -
SpringBoot数据库换源
baomidou提供的@DS自定义AOP自动换源实现AbstractRoutingDataSource手动换源。原创 2023-04-19 20:08:40 · 3010 阅读 · 6 评论 -
Spring-Boot-JPA带括号复杂动态查询
对于xxx以下数组用[0,xxx],对于xxx以上用[xxx]来解析.areaId传形如"1,2,3"的字符串后端切割.也可前端直传一维数组.如查询北京,上海的 车价格在20w-30w 以及40w-50w的车量。如查询深圳,上海的 楼房在 15w-30w, 40w以上的房子.price是价格. 可以多选,也可以不选.area是地区.可以多选,也可以不选.这样不是模糊搜索,而是选择动态查询.price传二维数组字符串。原创 2023-03-31 12:27:34 · 600 阅读 · 1 评论 -
Gradle7.4安装与基本使用
gradle有突出的版本不兼容问题.因此要注意SpringBoot对Gradle的要求,以及IDEA对Gradle的要求在IDEA的plugins/lib/gradle中规定了gradle的最大版本号. 在2022.2.1中是6.7 在2022.3.2中是7.4.其余自行查看该位置的版本控制.不过idea规定的版本号可以更改.查看SpringBoot与Gradle的兼容性。原创 2023-02-26 10:52:22 · 5359 阅读 · 2 评论 -
SpringBoot集成mongodb
mongodb属于NoSQL的一种分布式文档型存储数据库.由c++编写介于NoSQL和SQL之间.是最像SQL的非关系型数据库. 也具备ACID能力底层是JSON格式的二进制存储.称BSON.Mongo最大的特点是它支持的查询语言非常强大特点高性能MongoDB提供高性能的数据持久性。特别是,对嵌入式数据模型的支持减少了数据库系统上I/O活动。索引支持更快的查询,并且可以包含来自嵌入式文档和数组的键。原创 2023-02-23 18:43:56 · 1269 阅读 · 1 评论 -
SpringBoot多模块单元测试JPA+MyBatisPlus
本文章内容适合 SpringBoot多模块单系统采用H2内存测试库. 这种情况颇为复杂.因为单元测试必须要依靠主启动类程序. 多模块我试过,每个模块单独设置测试启动类.但是发现一个问题.每个模块都需要mapper扫描.需要关联依赖,还需要在那个模块中引入配置文件.否则读取不到. 也就是说单元测试的性质变了.每个模块的单元测试启动类都需要.像主启动类一样.需要完整的环境加载.这严重偏离了单元测试的目标!原创 2023-02-19 23:44:08 · 3581 阅读 · 4 评论 -
logback之Slf4J日志写入数据库
配置logback-spring.xml入库参数。.也可写相关后台接口控制;建表的SQL语句在图中位置可以找到。配置logging参数。原创 2023-02-16 12:02:41 · 1430 阅读 · 3 评论 -
ssm+thymeleaf国际化
这是springboot解析规范,当然本章讲解ssm国际化.springboot更为简单.原创 2022-11-20 21:57:27 · 399 阅读 · 0 评论 -
java经典面试题JUC并发篇(持续更新)
什么是ABA:在CAS过程中,线程1、线程2分别从内存中拿到了当前值为A,同时线程2把当前值A改为B,随后又把B改回来变为A,此后线程1检查到当前值仍为A而导致执行cas成功,但这个过程却发生了ABA问题,现场资源可能和当初不一样了(线程2把当前值由A->B->A)解决方法:版本号机制,利用版本号标记线程1拿到的‘当前值’的版本,若线程2进行了A->B->A操作,则版本号会改变,那线程1再次拿到的‘当前值’的版本和第一次的肯定是不同的,从而判定cas失败;解释器JIT对热点代码的优化。原创 2022-11-08 21:38:27 · 3449 阅读 · 2 评论 -
springboot多模块扫描
如图。springboot默认扫描启动类同级包和同级的子包内容。原创 2022-10-31 19:31:43 · 6541 阅读 · 3 评论 -
reddison自定义编码器fastjson2和增删改查工具类
我导入的是reddison包。没有导入reddison场景启动器查Config源码自定义fastjson2编码器原创 2022-10-28 22:22:21 · 1003 阅读 · 0 评论 -
formData手动上传问题前端如何传递后端如何接收
Required request part ‘files’ is not present,the request was rejected because no multipart boundary was found,Current request is not a multipart request原创 2022-10-09 17:56:03 · 9939 阅读 · 0 评论 -
Convert excel format exception.You can try specifying the ‘excelType‘ yourself
easyexcepl只支持csv,xls,xlsx文件类型.导致这一错误。将原表另存为excel.然后读取。原创 2022-10-08 14:10:50 · 1935 阅读 · 0 评论 -
spring-security2.6.3+JWT认证授权
比shiro更适合与spring体系相结合.主要永用户认证和用户授权shiro使用请看此处shiro认证授权加密验证的脚手架搭建//获取当前用户的权限 Authentication authentication = SecurityContextHolder . getContext() . getAuthentication();.....................原创 2022-08-26 09:43:14 · 832 阅读 · 1 评论 -
java经典面试题基础篇(持续更新算法)
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。如图: 分治思想 我们将它截为左子树,根,右子树.在左子树和右子树中又可以分为若干个如上图的形式.前序遍历: 根 左 右 (根在前) (当子树存在子节点,依旧按照 根 左 右)中序遍历: 左 根 右(根在中) (当子树存在子节点,依旧按照 左 根 右)后序遍历: 左 右 根 (根在后) (当子树存在子节点,依旧按照 左 右 根)我们通过前序遍历确定树的root.通过中序遍历确定左子树和右子树.原创 2022-08-22 08:58:20 · 2262 阅读 · 0 评论 -
VisualVM工具的下载及插件安装
VisualVM作为GitHub的独立工具分发,并作为GraalVM的可选组件分发。两者都是具有相同功能的相同位。独立工具在任何兼容的JDK上运行,捆绑工具配置为使用主机GraalVM运行。VisualVM也作为Java VisualVM在Oracle JDK 6~8中分发。它已在Oracle JDK 9中停产。请参阅升级 Java VisualVM 页面,了解如何升级到最新的 VisualVM。部分6~8中也不存在VisualVM,建议独立安装。............原创 2022-08-06 22:41:21 · 3578 阅读 · 1 评论 -
Elasticsearch7.17.3+分布式搜索引擎
Elastic的底层是开源库 Lucene。但是,你没法直接用Lucene,必须自己写代码去调用它的接口。Elastic是 Lucene的封装,提供了 REST API的操作接口,开箱即用。REST API:天然的跨平台。博主尝试了es8.X.X版本坑太多…官网地址GET /my_index/_mapping #查看映射"age" : {1.安装nginx通过ik访问nginx代理,获得最新词库信息.因此先安装nginx。...原创 2022-08-04 11:17:04 · 2386 阅读 · 0 评论 -
解决mybatis-plus where直接拼接and/or条件连接语句
反例2and条件不符合相当于没有,不看;剩下wrapper.apply(“1=1”).last(“1=1”).连接句直接不.or()默认and连接,背景用户可以输入以下内容.不输入即为全查询.因此。因此即为’where(1=1and)1=1’(重点将该检索字段的sql拼接)反例1直接拼接了连接语句.......原创 2022-07-16 22:34:19 · 6246 阅读 · 0 评论 -
[Load balancer does not contain an instance for the service xxx]和项目正常启动但注册不上nacos
表明该模块成功注册到nacos注册中心,但是一直不打印,从网上找了一下原因,大部分是说springboot和nacos版本问题,都试了就是不行,整了一下午,最后看到一篇博客说pom.xml文件缺少springboot的起步依赖,然后回头看看,果然没有,加上起步依赖。今天,在学习springcloud将nacos作为注册中心时,遇到了一个问题,就是模块明明正常启动不报错,但是注册不到nacos中。springcloud使用nacos作为注册中心时,服务正常启动,但是没有注册到nacos中。..........转载 2022-08-07 00:37:27 · 8198 阅读 · 0 评论 -
微服务 Error updating database. Cause: java.sql.SQLSyntaxErrorException: Table ‘xxx.xxxx‘ (远程调用RPC)
由于这个配置,加上偏离了微服务思想,在该服务模块下导入了第三方模块.里面有application-dev配置.而其他微服务均未配置.在项目启动自动装配时将所有依赖的resource整合一起,扫描到了第三方模块中的配置文件.造成这一错误。这很奇怪.明明写的是mall_sms数据库.但是却进入了mall_admin库。...原创 2022-07-14 20:07:16 · 1063 阅读 · 0 评论 -
理解并解决循环依赖
spring 2.6.x默认开启循环依赖检测.详情要点总结最基本的切面是Advisor,一个Aspect切面对应一到多个Advisor最基本的Advice是MethodIlnterceptor,其它Advice最终都将适配为MethodInterceptor创建代理的方式切面、切点、通知等不会被代理AnnotationAwareAspectIAutoProxvCreator调用时机:创建阶段、依赖注入阶段、一级缓存: 一级缓存作用:限制 bean 在 beanFactory 中只存一份,即实现 singl原创 2022-07-11 17:55:14 · 546 阅读 · 4 评论 -
RabbitMQ-其他知识
文章目录一.其他知识点1.1 幂等性1.2 优先级队列提示:以下是本篇文章正文内容,下面案例可供参考一.其他知识点1.1 幂等性用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。举个最简单的例子,那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额发现多扣钱了,流水记录也变成了两条。在以前的单应用系统中,我们只需要把数据操作放入事务中即可,发生错误立即回转载 2022-04-15 21:42:12 · 211 阅读 · 2 评论 -
(1)性能调优的标准和做好调优的正确姿势-有性能问题,上HeapDump性能社区!
有性能问题,上HeapDump性能社区! ·项目开发的初期,过于在意性能优化,反而会让我们疲于浪费精力,不仅不能给系统性能带来较大提升,还会影响到开发进度,甚至获得相反的效果,给系统带来新的问题我们只需要在代码层面考虑基本场景编程性能出问题地方︰ ·开发完成后,一般情况会对系统进行性能测试。产品经理一般会提供线上预期数据,我们在提供的参考平台上进行压测,通过性能分析、统计工具来统计各项性能指标,看是否在预期范围之内。 ·项目上线后,我们需要根据线上的实际情况,依照监控指标和统计日志,来观测翻译 2022-08-07 00:37:15 · 138 阅读 · 0 评论 -
No servers available for service: xxxx
There was an unexpected error (type=Service Unavailable, status=503).No servers available for service原创 2022-07-01 22:36:02 · 6249 阅读 · 4 评论 -
图书馆自习教室管理系统分析与设计
随着考研学生数量的不断增长,我校图书馆自习教室座位资源紧张的现象日益突出,且私占座现象严重,较大程度影响了座位的正常使用。为让每位学习者享有平等使用图书馆自习教室的权利,拟开发该系统。用户可以进行基本的登录,修改信息,查看通知以及座位选择预约.管理员可以进行针对性推送,以及师生信息,发布公告,系统管理等功能.如图1-1所示.图1-1 图书馆自习教室管理系统用例图领域模型表示了需求分析阶段“当前系统”逻辑模型的静态结构及业务流程,针对某一特定领域内概念类或者对象的抽象可视化表示。概括性的描述业务背景和原创 2022-06-16 19:19:04 · 5288 阅读 · 2 评论 -
java实现Dijkstra算法
解决的问题: 求解单源最短路径,即各个节点到达源点的最短路径或权值考察其他所有节点到远点的最短路径和长度局限性: 无法解决权值为负数的情况参数:Dijkstra算法步骤:(1)初始化:顶点集S: 顶点A到自已的最短路径长度为0。只包含源点,即S={A}顶点集U: 包含除v0外的其他顶点. 即U={B,C,D,E,F}dist[]: 源点还不能到达的节点,其权值为∞path[]: 记录当前节点的前驱节点下标(源点还不能到达的节点为-1)(2)从U中选取一个节点,它是源点A到然后把加入S中(此.原创 2022-06-03 09:56:31 · 7013 阅读 · 1 评论 -
关于idea无法自动编译-maven模块编译顺序-相关依赖找不到-maven Cannot resolve org.springframework.cloud:xxx
`找不到符号....` `程序包xxx.xxx.xxx不存在` `有这些内容却报没有找到这个包或类?` Project ‘org.springframework.boot:spring-boot-starter-parent:2.6.3‘ not found spring cloud 版本错Cannot resolve org.springframework.cloud:xxxx:unknown spring-cloud-alibaba-dependencies、spring-cloud-dep原创 2022-05-13 10:33:51 · 2917 阅读 · 2 评论 -
shiro权限校验跨域问题
1.背景起初解决Springboot跨域问题的方法是直接在Controller上添加@CrossOrigin注解,实现了前后端分离中的跨域请求。但随着业务代码的编写,做了token会话保持的检验,添加了拦截器后,再次出现了跨域问题。很纳闷,讲理说后台已经允许了跨域请求,之前的测试也证明了这一点,那为什么又突然出现了跨域拦截问题呢?2.分析及解决方案在登录拦截器中作了校验,对于需要登录后才能访问的接口,如果请求头中没有携带token,则是非法请求,直接返回404码。然后由于一直有对拦截到的请求中的请求转载 2022-05-09 00:19:01 · 944 阅读 · 0 评论 -
springCloudAlibaba2021.0.1微服务环境搭建和支配主流中间件
文章目录一. 简言二.三.一. 简言SpringCloud=分布式微服务架构的一站式解决方案,是多种微服务架构落地技术的集合体,俗称微服务全家桶.基于对各种中间件的整合.具体中间件浩瀚繁多,迭代快.因此主要记录springCloud的整合逻辑,这个原因必须要保证boot和cloud这个大总管版本兼容!springboot 和cloud的版本选择依赖 详情地址详细的boot和cloud的版本选择依赖 详情地址2022.4.26 建议中间件二.三....原创 2022-05-06 18:07:34 · 1858 阅读 · 4 评论 -
状态码封装--转载
文章目录一. 常量封装二. 返回状态码封装转载jeebase-WANGLEI并做补充一. 常量封装/** * @author jeebase-WANGLEI * @ClassName: PublicResultConstant * @Description: TODO * @date 2018年5月18日 下午11:49:45 */public enum ResponseConstant { /** * 成功 20x */ // 成功 服务器已经成功处原创 2022-04-19 19:53:02 · 470 阅读 · 0 评论 -
RabbitMQ消息中间件-基础篇
1.流量消峰: 将同时刻大量请求访问,使用消息队列做缓冲,把一秒内下的订单分散成一段时间来处理.2.应用解耦:**3.异步处理: **1.Kafka: 大数据的利器2.RocketMQ: 阿里巴巴的开源产品3.RabbitMQ 当前最主流的消息中间件之一生产者 : 产生数据发送消息的程序是生产者交换机: 一方面它接收来自生产者的消息,另一方面它将消息推送到队列中。交换机必须确切知道如何处理它接收到的消息,是将这些消息推送到特定队列还是推送到多个队列,亦或者是把消息丢弃,这个得有交换机类型决定.队原创 2022-04-14 22:13:45 · 2251 阅读 · 9 评论 -
java基本集合源码解读-JDK8/11
文章目录一.集合体系图二.ArrayListArrayList底层源码分析结论:使用ArrayList无参构造**`无参构造下ArrayList.add()扩容机制`**一.集合体系图增强for循环的底层也是迭代器二.ArrayListArrayList可以加入多个null,可以放任何值ArrayList是由数组实现数据存储的ArrayList基本等同于Vector,除了ArrayList线程不安全,执行效率高.(在多线程的情况下不建议用ArrayList)// ArrayList原创 2022-03-13 12:24:49 · 4381 阅读 · 22 评论 -
保姆级redis6全流程学习和redis秒杀全流程
文章目录一.redis解决的问题1.1.1解决session共享问题1.1.2降低io读操作1.2.1nosql数据库的特点1.2.2 NoSQL的适用场景1.2.3 NoSQL不适用的场景一.redis解决的问题1.1.1解决session共享问题在web2.0中随着设备终端的不断增加,请求量大大增加,服务器利用nginx负载均衡减缓压力.但由于使用了负载均衡.用户第一次登录的请求被携带到服务器1,在服务器生成了session对象.这时用户再次发送请求,请求可能被nginx的负载均衡机制发送到其他原创 2022-03-06 17:29:33 · 1749 阅读 · 11 评论 -
springboot+vue音乐网站实战项目
文章目录前言一.成果展示二. 后端流程2.1数据库表设计2.2. 后端搭建2.2.1 mybatis-plus逆向工程生成代码简化开发2.2.2 配置数据,跨域和静态资源放行2.3. 流水线式开发模式三.前端vue搭建3.1 前端基本环境搭建3.1.1 脚手架搭建和容易出现的错误3.1.2 axios与后端交互搭建3.2 基本书写流程3.3 前端再次强调注意的四.项目部署步骤.总结前言前端使用: vue/cli “^4.5.15”后端使用: springboot2.6.2, mybatis-pl原创 2022-02-23 00:02:10 · 4214 阅读 · 28 评论 -
your MySQL server version for the right syntax to use near ‘‘ at line 1
文章目录这个错误大概率是前端没有传值.造成where后面的值为空.where没有跟条件报错.也有可能是@param 或mybatis的传参类型没有写前端会报后端会报your MySQL server version for the right syntax to use near ‘’ at line 1这个是后端校验顺序写反导致的,后端没有检验前端值就直接存入库中.然后校验…...原创 2022-02-21 12:29:36 · 4792 阅读 · 1 评论 -
There was an unexpected error (type=Method Not Allowed, status=405). Request method ‘GET‘ not suppor
文章目录第一种常规犯错第二种常规错误提示:以下是本篇文章正文内容,下面案例可供参考第一种常规犯错前端使用get请求,后端未使用注解或注解为@PostMapping或请求路径少/或拦截器路径错误第二种常规错误mybatis字段名称与实体类不对应,使用自定义异常报错,难以察觉.以我的情况:前端:后端: /** * 更新歌单图片 */ @PostMapping("/updateSongListPic") @ResponseBody public O原创 2022-02-08 19:29:08 · 6262 阅读 · 11 评论 -
springboot静态资源访问及图片回显问题
文章目录回显问题主要是静态资源上传到src里面导致的,src会编译部署,不会热更新,所以不会重新编译回显想要在项目中实时热更新,那么我们可以将静态资源放在项目的根目录下,然后配置静态资源放行路径.可以在yaml中配置,也可以在配置类中配置.如下:// 以下是自定义静态资源访问@Configurationpublic class SingerPicConfig implements WebMvcConfigurer { /** * spring boot中上传图片回显问题原创 2022-02-05 08:31:42 · 1147 阅读 · 14 评论 -
mybatis-plus3.5.1逆向工程和旧版
mybatis-plus助力开发!原创 2022-01-31 18:29:35 · 1129 阅读 · 1 评论 -
四则整数运算(逆波兰java实现)
文章目录提示:以下是本篇文章正文内容,下面案例可供参考我是人狠话不多,谦卑尚学呆萌呆萌的小萌新.主程序模块package operation;import java.util.Scanner;import java.util.Stack;/** * @author WangJiaHui * @description: about operation * @ClassName Test * @date 2022/1/19 18:39 */public class Test原创 2022-01-21 15:47:11 · 679 阅读 · 8 评论 -
springBoot2.6.2映射请求原理(源码分析)
文章目录前言1.`分析doGet,doPost请求`二. `查看processRequest方法`三. `查看doServlet方法`四.`回过头看看DipatcherServlet类`五.`分析doDispatch`六 `查验映射匹配原理`你来看我啦啊前言由于springBoot底层还是使用的springMVC,因此前端的所有请求都会通过DispatcherServlet前端控制器.因此我们从DispatcherServlet开始分析1.分析doGet,doPost请求在Framew原创 2022-01-13 22:27:24 · 454 阅读 · 1 评论