
Java体系
文章平均质量分 68
最难不过坚持丶
心之所向,素履以往;生如逆旅,一苇以航.
展开
-
重放攻击和数据防刷
原创 2024-12-27 20:53:45 · 172 阅读 · 0 评论 -
nginx配置自签证书以及负载均衡配置
nginx配置自签证书。原创 2024-11-11 16:48:48 · 1783 阅读 · 0 评论 -
Spring Data JPA和MyBatisPlus比较以及SpringBoot整合
总结: hibernate性能不如MyBatisPlus.但深刻体现面向对象编程的思想无需关注表结构和实体对象的关系.在小项目上hibernate更加方便.而对于复杂业务MyBatisPlus就更胜一筹;原创 2023-02-09 16:28:37 · 6097 阅读 · 0 评论 -
认证/支付/优惠劵工厂策略模式-security多源认证
那对于后续添加新的登录方式来说不太友好而且代码显得太过臃肿,需要重新梳理一遍业务流程.添加认证逻辑.那有没有一种只用新建一个认证类就ok了?AuthenticationManagerProcessingFilter认证过滤器。如图我们新增认证方式只需要直接实现AuthStrategy接口和新增枚举即可.在使用策略模式以前,我们在单一接口凭借前端的类型判断.他们会调用具体匹配到的Provider完成认证。联系前端认证方式和对应的认证容器名。策略模式+枚举就是一种.可能需要写出如下代码。原创 2023-04-03 12:41:50 · 285 阅读 · 0 评论 -
SpringBoot过滤器获取Bean-请求重复可读-获取请求体数据-用户IP归属地获取
这样,在需要多次读取body的地方,只需要在过滤器中把原来的request换成这个自定义的request,然后把这个自定义的带缓存功能的request传到后续的过滤器链中。和加载顺序无关. 无法通过自动注入获取的原因是因为自动注入的前提是两个都加入容器中的对象,才能引用.那由于某些原因不能直接把当前类注入容器中.我们可以通过一个application上下文引用工具类,维护Bean内容.这也能有力证明,和加载顺序无关,否则凭啥我application能注入,自动注入不行?原创 2023-04-06 17:55:47 · 960 阅读 · 0 评论 -
基于推特雪花算法的改进-处理时间回拨和工作中心自动切换
【代码】基于推特雪花算法的改进-处理时间回拨和工作中心自动切换。原创 2023-04-06 20:51:02 · 457 阅读 · 0 评论 -
SpringSecurity多源认证之全部交给spring容器
权这篇文章描述了基本security架构.如今这篇是全部交由spring security托管.但博主依然有一个问题不太清楚.放在文末.本篇文章基于认证/支付/优惠劵策略模式-security多源认证文章继续讲解。原创 2023-06-07 22:08:47 · 1353 阅读 · 0 评论 -
No provider available for the service.dubbo服务互调启动异常 java.util.HashMap is in module java.base of load
dubbo和openfeign的区别是dubbo是真正的rpc框架.支持多种通信协议.能面对更多的调用场景,而且跨语言. 它的思路是–>服务暴露自己的方法,注册到注册中心. 消费端则从注册中心调用服务暴露的方法.openfeign目的是让开发者调用更简约,因此它是http通信框架. 它的思路是–>服务指定url接口.直接调用目标模块的接口.我的dubbo提供端和消费端配置dubbo : application : name : vector - member # 与服务名一致即可。原创 2023-05-26 20:59:17 · 1322 阅读 · 0 评论 -
Maven项目集成Lombok-Log4j日志
以下是springboot改良的普通项目log配置内容。原创 2023-04-15 13:01:10 · 1152 阅读 · 0 评论 -
BIO/NIO/Netty网络通信编程
魔数,用来在第一时间判定是否是无效数据包版本号,可以支持协议的升级序列化算法,消息正文到底采用哪种序列化反序列化方式,可以由此扩展,例如:json、protobuf、hessian、jdk指令类型,是登录、注册、单聊、群聊… 跟业务相关请求序号,为了双工通信,提供异步能力正文长度消息正文。原创 2023-04-17 20:24:43 · 660 阅读 · 0 评论 -
SpringSecurity6 Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exce
ervlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Filter execution threw an exception] with root causeat jdk.proxy3/jdk.proxy3.$Proxy144.authenticate(Unknown Source)原创 2024-07-12 22:47:22 · 1249 阅读 · 0 评论 -
万级数据优化EasyExcel+mybatis流式查询导出封装
我们不妨先给大家讲一个概念,利用此概念我们正好给大家介绍一个数据库优化的小技巧:需求如下:将一个用户表的数据导出800万条。如果你不假思索,直接一条sql语句搞上去,直接就会内存溢出,因为mysql会将结果记录统一查询出来然后返还给内存:那内存可能直接OOM!@Test// 1、定义资源try {// 获取连接// 获取使用预编译的statement// 关闭资源。原创 2023-08-28 17:35:30 · 6406 阅读 · 10 评论 -
Jakarta-JVM篇
本篇总结 周志明 第三版内容;黑马程序员满一航,美团技术团队等内容综述安娜的档案-全球最全书籍文献数据库-科学上网GraalVM官方文档JDK8+ 调参官网指令首先要讲述的包含两类,当下使用最多的hotSpotVM和GraalVM。原创 2023-11-06 17:14:24 · 852 阅读 · 0 评论 -
maven多仓库私库模板配置
文章目录<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://mave原创 2023-11-13 11:51:50 · 1192 阅读 · 0 评论 -
SpringBoot整合Netty整合WebSocket-带参认证
【代码】SpringBoot整合Netty整合WebSocket-带参认证。原创 2024-04-02 10:42:22 · 1338 阅读 · 3 评论 -
关于mybatis插入返回主键id和SpringBoot事务注解自调用演示
结论: 建议事务注解放在controller层。或者放在controller调用的第一个service作为事务入口 不需要考虑很多问题。原创 2023-11-27 20:33:33 · 1113 阅读 · 0 评论 -
基于 Jakarta、TypeScript、GoLang 技术栈的国密 SM2、SM3、SM4 算法实践
最近还要深度研究hutools底层实现,一定要搞透澈,本章将会是持续更新Java代码实现SM2算法以及注意点总结(踩坑记录)国密算法工具Smutil。原创 2024-08-06 22:41:03 · 798 阅读 · 0 评论 -
Channel shutdown: channel error; protocol method: #method channel.close (reply-code=404, reply-text=
大致场景是启动springboot时报错;原因是:当应用启动时,spring 会去检查注册的队列,跟服务器上的队列配置是否一致,如果不一致,则抛出这个错误。参考: https://www.cnblogs.com/xudong5273/p/16499538.html。spring-boot-starter-amqp启动器。每个微服务都可以做生产者和消费者,符合业务需求。rabbitmq多个微服务可用,因此我将其抽离到common模块。并重写封装了该方法。原创 2024-08-09 16:31:24 · 1719 阅读 · 0 评论 -
封装通用第三方平台用户表(微信开放平台)
首先强调的是 微信公众号平台和微信开放平台不是一个东西。 微信开放平台主要用于自己的系统对接微信。 而微信公众号平台主要使用微信公众号,小程序等微信内部程序对接微信开放接口。 而微信公众测试号不可用于微信开放平台。 微信开放平台必须通过企业认证注册应用实体,才能任意配置回调域使用测试域。微信开放平台微信开放平台文档微信公众号平台微信公众号平台测试号申请微信公众号平台文档扫描件内容必须与网站应用名称、网站应用简介、应用官网完全对应。 审查非常严格,不要得过且过。三.入库实体类四原创 2024-08-21 18:00:02 · 689 阅读 · 0 评论 -
后端接收数组,集合类数据
后端接收数组,集合类数据。原创 2024-09-19 19:28:08 · 505 阅读 · 0 评论 -
在离线环境Linux部署Ollama与Dify的CPU及CUDA版本,并将其整合至Spring AI项目中
以下适用于无法通过在线命令拉取的尝试过Stable Diffusion集成ollama,但是sd在ollama上无法良好运行。故此作罢。ollama自定义模型导入文档创建一个名为 Modelfile 的文件,并在其中包含一个 FROM 指令,该指令指向你想要导入的模型的本地文件路径。原创 2024-10-18 10:19:15 · 4384 阅读 · 0 评论 -
传输对象一定要实现Serializable接口吗
先说结论,Serializable不一定需要被实现. 在对象需要持久化保存到非关系型数据,网络传输RPC调用时候我们一般使用主流的Jackson,fastjson,fastjson2,hession2,protobuf,koyo等序列化工具. 而不是JDK序列化工具. 一般的上述主流序列化框架不需要检测Serializable接口,都有自己的实现.非关系型数据库以及网络对象传输肯定要序列化,但是得看用的啥框架.一般的主流框架不需要实现Serializable,它是jdk序列化识别的标志.原创 2023-08-17 13:24:22 · 432 阅读 · 0 评论 -
SpringBoot数据库换源(多数据源)
baomidou提供的@DS自定义AOP自动换源实现AbstractRoutingDataSource手动换源。原创 2023-04-19 20:08:40 · 4310 阅读 · 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 · 790 阅读 · 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 · 6461 阅读 · 2 评论 -
SpringBoot集成mongodb
mongodb属于NoSQL的一种分布式文档型存储数据库.由c++编写介于NoSQL和SQL之间.是最像SQL的非关系型数据库. 也具备ACID能力底层是JSON格式的二进制存储.称BSON.Mongo最大的特点是它支持的查询语言非常强大特点高性能MongoDB提供高性能的数据持久性。特别是,对嵌入式数据模型的支持减少了数据库系统上I/O活动。索引支持更快的查询,并且可以包含来自嵌入式文档和数组的键。原创 2023-02-23 18:43:56 · 1395 阅读 · 1 评论 -
SpringBoot多模块单元测试JPA+MyBatisPlus
本文章内容适合 SpringBoot多模块单系统采用H2内存测试库. 这种情况颇为复杂.因为单元测试必须要依靠主启动类程序. 多模块我试过,每个模块单独设置测试启动类.但是发现一个问题.每个模块都需要mapper扫描.需要关联依赖,还需要在那个模块中引入配置文件.否则读取不到. 也就是说单元测试的性质变了.每个模块的单元测试启动类都需要.像主启动类一样.需要完整的环境加载.这严重偏离了单元测试的目标!原创 2023-02-19 23:44:08 · 4161 阅读 · 4 评论 -
logback之Slf4J日志写入数据库
配置logback-spring.xml入库参数。.也可写相关后台接口控制;建表的SQL语句在图中位置可以找到。配置logging参数。原创 2023-02-16 12:02:41 · 1679 阅读 · 3 评论 -
ssm+thymeleaf国际化
这是springboot解析规范,当然本章讲解ssm国际化.springboot更为简单.原创 2022-11-20 21:57:27 · 451 阅读 · 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 · 4164 阅读 · 2 评论 -
springboot多模块扫描
如图。springboot默认扫描启动类同级包和同级的子包内容。原创 2022-10-31 19:31:43 · 7901 阅读 · 3 评论 -
reddison自定义编码器fastjson2和增删改查工具类
我导入的是reddison包。没有导入reddison场景启动器查Config源码自定义fastjson2编码器原创 2022-10-28 22:22:21 · 1234 阅读 · 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 · 12365 阅读 · 0 评论 -
Convert excel format exception.You can try specifying the ‘excelType‘ yourself
easyexcepl只支持csv,xls,xlsx文件类型.导致这一错误。将原表另存为excel.然后读取。原创 2022-10-08 14:10:50 · 2028 阅读 · 0 评论 -
spring-security2.6.3+JWT认证授权
比shiro更适合与spring体系相结合.主要永用户认证和用户授权shiro使用请看此处shiro认证授权加密验证的脚手架搭建//获取当前用户的权限 Authentication authentication = SecurityContextHolder . getContext() . getAuthentication();.....................原创 2022-08-26 09:43:14 · 993 阅读 · 1 评论 -
java经典面试题基础篇(持续更新算法)
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。如图: 分治思想 我们将它截为左子树,根,右子树.在左子树和右子树中又可以分为若干个如上图的形式.前序遍历: 根 左 右 (根在前) (当子树存在子节点,依旧按照 根 左 右)中序遍历: 左 根 右(根在中) (当子树存在子节点,依旧按照 左 根 右)后序遍历: 左 右 根 (根在后) (当子树存在子节点,依旧按照 左 右 根)我们通过前序遍历确定树的root.通过中序遍历确定左子树和右子树.原创 2022-08-22 08:58:20 · 2864 阅读 · 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 · 4216 阅读 · 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 · 2694 阅读 · 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 · 6620 阅读 · 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 · 8462 阅读 · 0 评论