
【每日扫盲】
文章平均质量分 57
立小言先森
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
springboot请求入参重复读问题ContentCachingRequestWrapper
其用于缓存所有从input stream和reader读取的内容,并且允许这些内容通过字节数组存储;此类扮演了拦截器的角色来缓存请求内容,如果请求内容没有被消费,则请求内容将不会被缓存,并且通过getContentAsByteArray()获取不到请求内容;此类是HttpServletRequest的子类,提供了HttpServletRequest接口的边界实现,开发人员可以根据自己的需要实现此包装类的具体方法。ContentCachingResponseWrapper是读响应数据进行缓存。原创 2024-12-03 19:08:46 · 1292 阅读 · 0 评论 -
LuaJava
LuaJava是一个Java脚本工具。该工具的目标是允许用Lua编写的脚本操纵用 Java开发的组件。LuaJava允许使用与访问Lua的本机对象相同的语法从Lua访问Java组件,而不需要任何声明或任何类型的预处理。LuaJava还允许在Lua中实现任何Java接口,并将其作为参数传递给任何方法,当调用时,Lua中将调动等效函数,并将结果传递会Java。LuaJava与Lua5.1的许可证相同,也就是说,它可以免费用于学术和商业目的。原创 2024-12-03 19:05:38 · 990 阅读 · 0 评论 -
Java11使用JVM同一日志框架启用日志记录
你可以使用-Xlog选项配置或启用Java虚拟机同一日志框架的日志记录。原创 2024-12-03 19:04:06 · 969 阅读 · 0 评论 -
spring通过RequestContextHolder获取HttpServletRequest对象
OncePerRequestFilter是Spring框架中一个抽象类,用于确保过滤器在每次请求中只通过一次,这是通过重写doFilterInternal方法来实现的,而不是通过重写doFilter方法。OncePerRequestFilter通过Spring的过滤器链管理来确保这一点。RequestContextHolder类中全部是静态方法,可以直接使用设置属性、清空属性相关方法;原创 2024-12-03 19:02:03 · 817 阅读 · 0 评论 -
knife4j+springboot3.4异常无法正确展示文档
通过分析异常日志发现是ControllerAdviceBean类报错,在springboot3.3.5时spring-web版本是6.1.14,springboot3.4版本是6.2.0版本。结论:期待knife4j-openapi3-jakarta-spring-boot-starter早日升级,兼容最新版本的spring;通过http://ip:port/doc.html访问接口文档发现访问/v3/api-docs接口时报。此类中的构造函数已经变更为4个,已经不存在一个参数的构造函数了。原创 2024-12-03 18:59:17 · 3095 阅读 · 6 评论 -
配置websocket消息代理类AbstractBrokerRegistration
在Spring Framework的Spring Messaging和Spring WebSocket模块中,StompBrokerRelayRegistration、SimpleBrokerRegistration和AbstractBrokerRegistration是用于配置WebSocket消息代理(broker)的关键类。这些类通常在配置WebSocket消息代理时通过Java配置或XML配置被使用。原创 2024-10-21 18:59:54 · 727 阅读 · 0 评论 -
springboot接口Get请求实体类入参
在springboot中,对HTTP GET请求,通常不会降请求体(body)作为主要的数据传输方式,因为GET请求通常用于请求数据,而不是发送数据到服务器(尽管从技术上讲,GET请求可以包含请求体,单这并不常见,也不符合RESTful API的设计原则)。因此,对于GET请求的入参,通常不会使用@RequestBody注解。原创 2024-10-21 18:55:56 · 1769 阅读 · 0 评论 -
@MassageMapping和@SendTo注解详解
MessageMapping注解是Spring Framework中用于WebSocket消息处理的注解,它用于将特定的消息路径映射到处理器方法上。@SendTo注解指定了相应消息应该被发送到的目的地路径。原创 2024-10-21 18:54:02 · 952 阅读 · 0 评论 -
The Simple Text Oriented Messaging Protocol(STOMP)
CONNECTSENDSUBSCRIBEBEGINCOMMITABORTACTNACKDISCONNECT客户端和服务器之间的通信是通过由多条组成的“框架”进行的。第一行包含命令,后面是:格式的标题(每行一个),后面是空行,然后是正文内容,以空字符结尾。服务器和客户端之间的通信是通过MESSAGE、RECEIPT或ERROR帧进行的,这些帧具有类似的标头和正文内容格式。原创 2024-10-17 19:03:32 · 778 阅读 · 0 评论 -
Field injection is not recommended – Spring IOC
在运行静态代码分析工具或从IDE检查/分析代码时,你可能会遇到以下关于@Autowired字段的警告:Field injection is not recommended。原创 2024-10-17 19:01:12 · 685 阅读 · 0 评论 -
redis-cli执行lua脚本
key和参数通过逗号分割,逗号前后必须有一个空格。原创 2024-10-11 19:02:05 · 811 阅读 · 0 评论 -
什么是SQLite?
SQLite是一个进程内的软件库,实现了自给自足的、无服务器的、零配置的、事务性的SQL数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。就像其它数据库,SQLite引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite直接访问其存储文件。二、为什么要用SQLite?不需要一个单独的进程或操作系统(无服务器的);不需要配置,这意味着不需要安装或管理(零配置的);一个完整的SQLite数据库是存储在一个单一的跨平台的磁盘文件;原创 2024-10-11 19:00:39 · 1170 阅读 · 0 评论 -
Java反射机制中UndeclaredThrowableException异常
在Java中UndeclaredThrowableException是Java反射机制中使用的一个特殊异常类,通常与InvocationHandler接口一起使用,在通过反射调用方法时,如果方法声明抛出了受检查异常(checked exception),但是在方法上并没有声明抛出的这些异常,那么就会抛出UndeclaredThrowableException异常。这个异常包装了实际发生的受检异常,使其可以作为一个非受检异常(unchecked exception)被抛出。原创 2024-09-24 19:35:17 · 876 阅读 · 0 评论 -
Spring Shell基于注解定义命令
默认情况下,命令根据其实现的类进行分组,将驼峰类名转换为单独的单词。可以通过如下方式指定分组(优先级按照说明顺序)原创 2024-09-24 19:33:19 · 361 阅读 · 0 评论 -
搭建第一个Spring Shell案例
Spring Shell允许您创建这样一个可运行的应用程序,用户可以在其中输入文本命令,这些命令将一直运行,直到程序终止。Spring Shell项目提供了创建这样一个REPL(Read, Eval, Print Loop)应用程序的基础设施,让你可以通过使用熟悉的Spring编程模型专注于实现命令。为了了解spring shell提供了什么,我们可以编写一个简单的hello world shell应用程序,它有一个简单的参数。这意味值需要启用InteractiveShellRunner才能获取REPL。原创 2024-09-23 19:08:28 · 641 阅读 · 0 评论 -
Spring Boot CLI命令行工具
Spring Boot CLI适应各命令行工具,你可以使用它快速创建spring项目,通常我们都是使用idea等工具来创建项目,用不到CLI,但这提供了一种在没有IDE的情况下快速创建启动spring应用的方法。示例创建项目my-project,默认gradle依赖spring-boot-starter-web和spring-boot-starter-data-jpa。原创 2024-09-23 19:06:55 · 955 阅读 · 0 评论 -
SDKMAN!关联已安装JDK
【代码】SDKMAN!关联已安装JDK。原创 2024-09-19 19:21:16 · 1084 阅读 · 0 评论 -
SDKMAN!安装Maven
注意关联的时候定义的版本不要跟sdk list maven中展示的版本重复,否则不生效,上述我就重新命名了版本;另外环境变量配置要去掉,如.bash_profile文件中的配置,否则不生效;查看当前所有管理的服务默认版本。原创 2024-09-19 19:19:44 · 1151 阅读 · 0 评论 -
SDKMAN!软件开发工具包管理器
认识一下SDKMAN!想象一下,有不同版本的SDK,需要一种无感知的方式在它们之间切换。其前身为GVM,Groovy环境管理器,SDKMAN从apt、pip、rvm、rbenv甚至Git等熟悉的工具中汲取灵感。自身的,而force参数确保即使在检查到没有新版本时也会执行更新操作。的临时目录.sdkman/tmp,如果手动移除可能会破坏SDKMAN!选择将指定的版本设置为默认的版本,这将确保所有后续shell都将使用3.6.3版本。在当前命令行终端指定使用版本,要注意,这将键切换当前shell的候选版本。原创 2024-09-18 19:38:36 · 722 阅读 · 0 评论 -
Mybatis中sql数组为空判断
上述示例只能判断arrays数组不为null,那如果是个空数组呢。二、Mybatis xml中的sql通过if语句判定数组非空数组。原创 2024-09-18 19:36:32 · 1900 阅读 · 0 评论 -
Maven项目中dependencyManagement(BOM)和pluginManagement作用
在Maven项目中dependencyManagement用于定义BOM(Bill Of Materials)物料清单,pluginManagement用于maven插件定义。原创 2024-09-10 19:09:58 · 611 阅读 · 0 评论 -
spring-boot-maven-plugin插件
spring-boot-maven-plugin插件对Apache Maven提供Spring Boot支持,它允许你在运行集成测试之前打包可执行jar或war文件目录,运行spring boot应用程序,生成构建信息并启动spring boot应用。Maven版本必须是3.6.3或更高版本。原创 2024-09-10 19:08:00 · 3732 阅读 · 0 评论 -
Spring Cloud OpenFeign 4组件
核心初始化类:FeignClientFactoryBean、FeignAutoConfiguration、FeignClientsConfiguration、HttpClient5FeignConfiguration。Client的默认实现类是feign.hc5.ApacheHttp5Client。请求url如:api/feign/test/myname,key1=value1a,value1b;RequestInterceptor和ResponseInterceptor如何初始化。原创 2024-09-05 19:09:03 · 1293 阅读 · 0 评论 -
Bill of Materials (BOM) POMs
Bill of Materials (BOM)物料清单,实际上就是一个普通的pom文件,在pom文件中只定义dependencyManagement版本依赖管理,用于管理项目依赖的所有jar包;有利于包版本的统一,降低由于版本不一致导致的冲突;有利于降低配置的复杂度,提升开发效率。个人开源SDK原创 2024-09-05 19:07:08 · 1077 阅读 · 0 评论 -
Maven持续集成(Continuous integration,简称CI)版本友好管理
从Maven 3.5.0-beta-1 版本开始可以在pom文件中使用revision{sha1}、${changelist}做为版本的占位符。原创 2024-09-03 19:35:22 · 990 阅读 · 0 评论 -
RedisCache存入redis的数据key为何name和id的分隔符是两个冒号::
Redis Cache缓存数据生成的key是由两部分组成,cacheNames和+d或者自定义生成方案,如果采用cacheNames+id方案则会在中间添加两个冒号::,这样使用工具查看的时候感觉怪怪的,今天我们就探讨下具体生成原因。原创 2024-09-03 19:31:28 · 671 阅读 · 0 评论 -
Redis的KeyExpirationEventMessageListener键过期监听器
MessageListener通过监听key过期的Redis keyspace通知,然后通过ApplicationEventPublisher发布RedisKeyExpiredEvent事件的模式进行事件监听和广播。原创 2024-09-02 19:47:33 · 1629 阅读 · 0 评论 -
Redis发布订阅PUB/SUB
Redis发布订阅PUB/SUB是一种消息通信模式,发送者PUB发送消息,订阅者SUB接收消息。Redis客户端可以订阅任意数量的频道,一个通道CHANNEL可以被多个客户端订阅,当一条消息发送到CHANNEL中去后所有订阅的客户端都会接收到此消息。原创 2024-09-02 19:46:01 · 682 阅读 · 0 评论 -
RedisMessageListenerContainer容器初始化
RedisMessageListenerContainer是Spring Data Redis提供的一个容器类,为Redis监听器提供异步处理能力,处理低级别消息、转换Redis的消息通道,它通常与MessageListenerAdapter和自定义的消息监听器一起使用。原创 2024-08-29 19:29:50 · 1422 阅读 · 0 评论 -
Spring框架中PathMatchingResourcePatternResolver解析资源路径并匹配资源模式
PathMatchingResourcePatternResolver是Spring框架中用于解析资源路径并匹配资源模式的一个工具类。它常用于在Spring的上下文中加载资源,如:配置文件、类路径下的文件加载等。PathMatchingResourcePatternResolver是一个Ant模式通配符的Resource查找器,可以用来查找类路径下或者文件系统中的资源获取文件系统文件。PathMatchingResourcePatternResolver位于spring-core包之中。原创 2024-08-29 19:27:30 · 1257 阅读 · 0 评论 -
spring-data-redis中RedisRepository仓储
Id@RedisHash注解的value属性和@Id注解指定键值的命名空间,组合成user:id;@RedisHash的属性timeToLive属性指定键值的超时时间。CrudRepository接口中默认定义实现了save、saveAll、findById、existsById、findAll、findAllById、count、deleteById、delete、deleteAllById、deleteAll等方法,基本满足了对redis操作的需求;如果有特殊需求可以自定义实现。原创 2024-08-27 19:04:13 · 1253 阅读 · 0 评论 -
springboot故障分析FailureAnalyzer
org.springframework.boot.diagnostics.FailureAnalyzer是springboot框架中的一个接口,用于为应用程序启动失败提供详细的诊断报告。当springboot应用程序无法正常启动时,springboot会尝试查找一个或多个实现了FailureAnalyzer接口的类,以提供关于失败原因的详细信息。原创 2024-08-27 19:02:24 · 759 阅读 · 0 评论 -
【Java的package-info.java文件支持
package-info.java的用途,简单地说,package-info是一个java文件,可以添加到任何Java包中。package-info.java文件目前有两个用途,包级文档的存放位置、包级别注释的存放位置,除了这两点外还可以根据需要扩展用例。将来如果需要添加任何包级别的功能,此文件将是一个完美的位置。原创 2024-08-27 19:00:38 · 259 阅读 · 0 评论 -
spring-boot-starter-data-redis是否支持reactive响应式编程
spring-boot-starter-data-redis-reactive: 使用响应式编程模型,在响应式编程中,你的操作是异步的,并且基于事件驱动;你可以继续处理其他的事情,而不必等待Redis操作完成;当Redis操作完成时,结果会被发送到一个回调函数或订阅者。spring-boot-starter-data-redis: 使用传统的基于阻塞的I/O编程模型,这意味着当你调用Redis操作时,线程将会被阻塞,知道操作完成,这在高并发场景下可能会导致线程资源的良费和响应时间的增加。原创 2024-06-29 15:28:17 · 1041 阅读 · 0 评论 -
spring如何给bean动态取不同的别名
spring、springboot向容器中注入bean的时候一般情况下只有一个别名,在某些特殊场景需要指定多个别名。原创 2024-06-29 10:11:33 · 1149 阅读 · 0 评论 -
spring-boot-configuration-processor注释处理器
spring-boot-configuration-processor是springboot提供的一个注释处理器(annotation processor),它用于在编译时生成元数据文件(META-INF/spring-configuration-metadata.json),该文件描述了你的配置属性,以便为开发者提供自动补全和文档支持。生成的元数据文件可以被 IDE(如 IntelliJ IDEA 或 Visual Studio Code)的 Spring Boot 插件使用,以提供自动补全和文档支持。原创 2024-06-29 10:09:55 · 1561 阅读 · 0 评论 -
Java取消警告SuppressWarnings注解
SuppressWarnings是Java提供的一个注解(annotation),用于告诉编译器忽略特定的告警信息。这在某些情况下是非常有用的,特别是当你确定某个警告是安全的,或者是由第三方引起的且你也无法修改时。原创 2024-06-29 10:08:18 · 601 阅读 · 0 评论 -
maven-gpg-plugin插件
【代码】maven-gpg-plugin插件。原创 2024-06-29 10:06:33 · 1516 阅读 · 0 评论 -
Maven Wrapper安装指令
Maven Wrapper是一个小脚本和库,它允许你再没有预装Maven的情况下构建Maven项目。通过Maven Wrapper项目的构建环境可以变的相同,解决版本不一致问题。原创 2024-06-22 11:42:14 · 549 阅读 · 0 评论 -
maven仓库推送报401 Content access is protected by token
本地很久配置好了往maven中央仓库推送jar包的配置,突然间报如下错误。原创 2024-06-22 11:40:41 · 795 阅读 · 0 评论