- 博客(579)
- 收藏
- 关注

原创 框架源码学习收藏汇总
Springsecurity过滤器和方法拦截器 https://www.processon.com/view/link/61fe51221efad479c07aa7b7WebSecurity&HttpSecurity&AuthenticationManager三大构建者 https://www.processon.com/view/link/61ffe49f6376890390cf9e28SecurityConfigurer配置类继承体系(创建HttpSecurity) https://
2022-02-27 09:35:06
616
原创 Json schema校验json字符串(networknt/json-schema-validator库)
json schema校验json字符串(networknt/json-schema-validator库)
2025-05-18 08:45:14
408
原创 springboot3学习
leifengyang/spring-boot-3 - gitee代码尚硅谷新版SpringBoot3教程 - B站视频SpringBoot3 全栈指南教程——尚硅谷学习笔记 2023年Java17Spring、SpringMVC、MyBatisMaven、IDEASpringBoot 帮我们简单、快速地创建一个独立的、生产级别的 Spring 应用 (说明:SpringBoot 底层是 Spring)。大多数 SpringBoot 应用只需要编写少量配置即可快速整合 Spring 平台以及第三方技术。特性
2025-05-11 17:01:44
971
原创 spring-batch源码初探
1、自动注入DataSource数据源2、@Bean定义了JobBuilderFactory3、@Bean定义了StepBuilderFactory4、@Bean定义了JobRepository5、@Bean定义了JobLauncher6、@Bean定义了JobExplorer7、@Bean定义了transactionManager8、引入了JobScope 和 StepScope 这2个域。
2025-05-01 16:54:29
378
原创 Aop源码学习收藏
3、Spring AOP的通知类型、切点表达式用法!6、Spring AOP代理对象调用方法的源码。7、使用ProxyFactory自行构建代理。4、Spring AOP的织入过程的源码。1、面向切面编程的概念,AOP的概念。5、JDK代理和CGLIB代理的原理。8、Spring AOP涉及类的全图。2、Spring AOP的使用方法。10、@Async与AOP动态代理。Spring Aop个人学习总结。9、AOP遇到循环依赖。
2025-04-23 22:05:09
269
原创 jsch(shell终端Java版)
纯Java实现一个web shell登录Linux远程主机,技术选型 SpringBoot + WebSocket + jsch + xterm.js。- 基于SpringBoot+Websocket+jsch+xterm.js的webssh Java+xtearmjs实现WebSSH。- 使用Java语言,基于SpringBoot、JSch、WebSocket、Xterm.js开发的web端SSH连接工具。
2025-04-20 18:23:21
255
原创 thymeleaf模板引擎
velocity模板引擎freemarker模板引擎thymeleaf模板引擎thymeleaf官网thymeleaf官方文档1、环境搭建建立maven项目,引入依赖2、使用2.模板文件1、在resources目录下创建main.html2、测试3.设置模板文件前后缀在resources目录下创建templates目录,并创建main.html文件测试springboot整合thymeleaf使用1.pom.xml2.application.yml3.启动类4.IndexC
2025-04-20 11:48:56
991
原创 freemarker模板引擎
FreeMarker 是⼀款模板引擎: 即⼀种基于模板和要改变的数据, 并⽤来⽣成输出⽂本(HTML⽹⻚,电⼦邮件,配置⽂件,源代码等)的通⽤⼯具。是⼀个Java类库。FreeMarker 被设计⽤来⽣成 HTML Web ⻚⾯,特别是基于 MVC 模式的应⽤程序,将视图从业务逻辑中抽离处理,业务中不再包括视图的展示,⽽是将视图交给 FreeMarker 来输出。
2025-04-20 11:27:29
732
原创 spring-batch批处理框架(2)
spring-batch批处理框架(1)spring-batch批处理框架(2)作业的运行指的是对作业的控制,包括作业启动,作业停止,作业异常处理,作业重启处理等。目前为止,上面所有的案例都是使用Spring Boot 原生功能来启动作业的,其核心类:JobLauncherApplicationRunner , Spring Boot启动之后,马上调用该类run方法,然后将操作委托给SimpleJobLauncher类run方法执行。默认情况下,Spring Boot一启动马上执行作业。如果不想Sprin
2025-04-19 23:39:23
1086
原创 spring-batch批处理框架(1)
系统了解Spring Batch批处理项目中能熟练使用Spring Batch批处理Java基础MavenSpring SpringMVC SpringBootMyBatis何为批处理,大白话:就是将数据分批次进行处理的过程。比如:银行对账逻辑,跨系统数据同步等。常规的批处理操作步骤:系统A从数据库中导出数据到文件,系统B读取文件数据并写入到数据库典型批处理特点:自动执行,根据系统设定的工作步骤自动完成数据量大,少则百万,多则上千万甚至上亿。(如果是10亿,100亿那只能上大数据了)定时执行,比如:
2025-04-19 23:35:58
671
原创 velocity模板引擎
Apache Velocity Project 官网Velocity Engine基础Velocity 模板引擎使用介绍
2025-04-19 20:22:06
272
原创 spring mvc异步请求 & sse & 大文件下载 & 断点续传下载Range
异步Servlet3.0Spring Boot 处理异步请求(DeferredResult 基础案例、DeferredResult 超时案例、DeferredResult 扩展案例、DeferredResult 方法汇总)spring.io mvc Asynchronous Requests 官网文档spring.io webflux&webclient官网文档Spring MVC广泛接入Servlet 3.0异步请求处理:一旦在Servlet容器中启用了异步请求处理特征,控制器方法就可以用Deferred
2025-04-06 16:41:48
1039
原创 异步Servlet3.0
传统的MVC框架如SpringMVC也无法摆脱Servlet的桎梏,都是基于Servlet来实现的。在Servlet 3.0之前,Servlet采用的方式处理HTTP请求,即每一次请求都是由某一个线程从头到尾负责处理。如果一个请求需要进行IO操作,比如访问数据库、调用第三方服务接口等,那么其所对应的线程将同步地等待IO操作完成,而IO操作是非常慢的,所以此时的线程并不能及时地释放回线程池以供后续使用,如果并发量很大的话,那肯定会造性能问题。为了解决这一问题,
2025-04-05 20:19:06
781
原创 tomcat与spring-web
*** 这个类实现了WebApplicationInitializer,目的是往ServlvetContext中添加ContextLoaderListener,* 这跟我们在web.xml 中配置ContextLoaderListener监听器是一样的*//** 这个重写接口的方法负责使用servletContext注册ContextLoaderListener监听器*/@Override/**
2025-04-05 10:59:30
1094
原创 tomcat构建源码环境
参考网址:https://blog.csdn.net/yekong1225/article/details/81000446 Tomcat作为J2EE的开源实现,其代码具有很高的参考价值,我们可以从中汲取很多的知识。作为Java后端程序员,相信有很多人很想了解Tomcat的运行原理。Tomcat的构建是基于Ant和Eclipse的,然而现在很多人都喜欢IDEA+Maven的项目构建方式,本文描述了在Win7的环境下,使用IDEA导入Tomcat 8.0.53源码,并运行tomcat源码。
2025-04-05 10:44:43
1199
原创 tomcat的web三大组件&Sci&idea搭建web/maven的tomcat项目
Servlet是用来处理请求的HttpServlet继承GenericServlet,GenericServlet继承javax.servlet请求被Servlet处理之前,被Filter过滤器拦截,放行之后,请求才会被Servlet处理如果配置了多个过滤器,那么将会按照顺序依次拦截当web应用启动,创建好ServletContext时,会回调配置的监听器的contextInitialized方法,并且将ServletContextEvent对象传递过来。
2025-04-05 10:36:17
1253
1
原创 Apache httpclient & okhttp(2)
HTTP是现代应用程序的网络方式。这是我们交换数据和媒体的方式。高效地使用HTTP可以让您的东西加载更快并节省带宽。OkHttp使用起来很方便。它的请求/响应API设计具有流式构建和不可变性。它支持同步阻塞调用和带有回调的异步调用。
2025-04-04 17:02:09
397
原创 RandomAccessFile类 & 多线程读写文件 & 文件断点续传
RandomAccessFile是Java 输入/输出流体系中功能最丰富的文件内容访问类,它提供了众多的方法来访问文件内容,它既可以读取文件内容,也可以向文件输出数据。与普通的输入/输出流不同的是,RandomAccessFile支持"随机访问"的方式,程序可以直接跳转到文件的任意地方来读写数据。RandomAccessFile可以自由访问文件的任意位置。RandomAccessFile允许自由定位文件记录指针。只能读写文件而不是流。
2025-04-04 09:15:56
651
原创 Apache httpclient & okhttp(1)(log4j)
okhttp githubokhttp官方使用文档SpringBoot 整合okHttp okhttp3用法httpcomponents-client githubapache httpclient文档apache httpclient文档详细使用
2025-04-02 19:21:53
357
原创 Dubbo分布式框架学习(2) &手写rpc&手动启动tomcat&springboot整合dubbo&dubbo用法示例&dubbo-admin&dubbo源码简析
⾃研:rediszookeeper(dubbo的推荐):zk是⼀个分布式服务组件中的⼀个⾮常重要的组件,⾥⾯ 涉及到很多优秀的分布式设计思想,堪称⿐祖地位。nacos:nacos既可以作为注册中⼼使⽤,也可以作为分布式配置中⼼使⽤eureka:eureka是spring cloud netflix框架中著名的注册中⼼,⾥⾯的服务的续约、⼼ 跳等等的设计⾮常的经典。dubbo是⼀款⾼性能的rpc框架。什么是rpc呢?
2025-03-31 14:27:45
864
原创 Dubbo分布式框架学习(1)
互联网项目特点:用户多流量大,并发高海量数据易受攻击功能繁琐变更快衡量网站的性能指标:架构目标高性能:提供快速的访问体验。高可用:网站服务一直可以正常访问。可伸缩:通过硬件增加/减少,提高/降低处理能力。高可扩展:系统间耦合低,方便的通过新增/移除方式,增加/减少新的功能/模块。安全性:提供网站安全访问和数据加密,安全存储等策略。敏捷性:随需应变,快速响应。:很多“人”一起 ,干一样的事。一个业务模块,部署在多台服务器上。:很多“人”一起,干不一样的事。这些不一样的事,合起来是一件大事。一个大的业务系统,拆
2025-03-30 21:53:43
844
原创 Spring Cloud&Alibaba项目创建和版本管理
就像Spring Boot一样,许多Spring Cloud项目都包含启动器,您可以将其添加为依赖项,以便将各种云原生功能添加到您的项目中。启动器名称记录在各个项目中。项目的版本号格式为 x.x.x 的形式,其中 x 的数值类型为数字,从 0 开始取值,且不限于 0~9 这个范围。此模块中提供了演示用的 example ,您可以阅读对应的 example 工程下的 readme 文档,根据里面的步骤来体验。(java的版本,springboot的版本,spring cloud的版本要对应上)
2025-03-15 16:38:31
1013
原创 阿里百炼&Spring AI Alibaba
此仓库中包含许多 Example 来介绍 Spring AI Alibaba 从基础到高级的各种用法和 AI 项目的最佳实践。
2025-03-15 11:07:25
1142
原创 Netty启动源码&NioEventLoop剖析&accept剖析&read剖析&write剖析
入口关键代码(1、注意main线程和nio线程的切换; 2、initAndRegister 对应 nio中 创建ServerSocketChannel 和 把ServerSocketChannel注册到selector上 3、doBind0 对应 nio中 bind监听端口)// 1. 执行初始化和注册 regFuture 会由 initAndRegister 设置其是否完成,从而回调 3.2 处代码= null) {
2025-03-13 21:13:45
1243
原创 APlayer漂亮的音乐播放器
/ 值为:'auto', 'hls', 'normal' or other custom type。// 值为:'auto', 'hls', 'normal' or other custom type。: 设置播放器模式,mode 取值应为 'mini' 或 'normal'// 预加载,值为 'none', 'metadata', 'auto': 返回播放器当前模式,'mini' 或 'normal'// 播放顺序,值为 'list', 'random'// 主题色, 优先级高于上面的theme。
2025-03-11 22:15:32
804
原创 MVCC多版本并发控制详解
MVCC 通过多版本数据、快照读和版本可见性规则,在保证事务隔离性的同时显著提升了并发性能,是现代数据库(如 MySQL、PostgreSQL)实现高并发的核心技术之一。其核心是以空间换时间,通过存储多个版本来避免锁竞争。MVCC 是手段,隔离级别是目标MVCC 通过多版本和快照读实现高并发,但具体行为由隔离级别决定。在读未提交级别下,MVCC 的快照机制被绕过,直接读取最新数据(包括未提交版本)。你的质疑非常关键这反映了隔离级别与 MVCC 的关系需要更清晰的表述。
2025-03-11 22:02:19
1138
原创 linyu-im
林语是基于tauri开发的桌面聊天软件,前端框架使用react,后端框架使用springboot进行开发 ,管理端使用vue3进行开发。其中使用http和websocket实现消息发送和推送,使用webrtc实现音视频聊天。一款非常漂亮的linyu-im,它的mini版本,仅使用了mysql数据库。
2025-03-08 20:09:51
227
原创 webflux响应式编程
Java8语法糖:2、Function在Java中,函数式接口是只包含一个抽象方法的接口。它们是支持Lambda表达式的基础,因为Lambda表达式需要一个目标类型,这个目标类型必须是一个函数式接口。函数式接口的出入参定义:1、有入参,无出参【消费者】: function.accept2、有入参,有出参【多功能函数】: function.apply3、无入参,无出参【普通函数】:4、无入参 ,有出参【提供者】: supplier.get()java.util.function包下的所有f
2025-03-08 18:46:36
669
原创 springboot对接deepseek & sse流式输出 & 多轮对话推理demo & 接入豆包/千帆/讯飞
【代码】deepseek & sse流式输出。
2025-02-25 23:17:44
1143
原创 webflux&webclient
springboot-webFlux的webclient详细使用介绍,细节拉满【SpringBoot WEB 系列】WebClient 之基础使用姿势WebClient 同步、异步调用实现对比
2025-02-25 19:13:02
335
原创 sse服务端消息推送
WebConfigapplication.ymlSseControllerSseApp连接sse服务:推送数据:关闭sse:使用vue连接sse服务端
2025-02-24 17:05:12
1025
原创 javacv将mp4视频切分为m3u8视频并播放
将上传的视频文件,使用javacv拆分成m3u8文件和ts文件,m3u8文件和ts文件通过nginx访问,而key文件则通过web服务来获取。使用dplayer播放视频。也可以使用ffmpeg命令来做,可以参考上面链接。
2025-02-17 23:08:23
1221
原创 springboot-ffmpeg-m3u8-convertor & nplayer视频播放弹幕 & artplayer视频弹幕
springboot+ffmpeg,将视频转换为 m3u8 格式。转换方式有:指定文件路径 、文件上传转换两种转换方式。- 内部封装了操作ffmpeg命令的java类库。
2025-02-16 20:22:14
533
原创 玩转数据结构和算法
3、栈,基于动态数组实现栈,栈的应用:系统的线程栈、撤销/恢复的实现、左右括号的匹配。2、基于数组实现动态数组。1、数组实现增删改查。
2025-02-16 00:07:12
713
原创 并发工具CountDownLatch、CyclicBarrier、Semaphore
*** 描述:工厂中,质检,5个工人检查,所有人都认为通过,才通过*/i < 5;i++) {@Overridetry {System.out.println("No." + no + "完成了检查。");System.out.println("等待5个人检查完.....");// 这里也可以设置超时等待时间, 如: latch.await(5, TimeUnit.SECONDS);System.out.println("所有人都完成了工作,进入下一个环节。");
2025-02-08 23:09:38
683
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人