Spring AI 1.1.3 正式发布,19 个新特性太顶了!
大家好,我是R哥。
Spring AI 1.1.3 正式发布了。。
除了 Spring AI 1.1.3,2.0.0 也来到了 M3 版本了,相信再过一阵子就要正式 GA 了,1.0.4 也发布了,大家可以根据自己的需要选择合适的版本。
说说主线版本 Spring AI 1.1.3 吧,这次一共带来了:
19 个新特性;
31 个 bug 修复;
23 个文档改进;
25 个其他改进;
Sp ...
对于依赖注解,@Autowired 和 @Resource 有什么不同?
在 Spring 框架中,@Resource 和 @Autowired 都用于依赖注入(Dependency Injection,DI),但它们之间存在一些区别:
@Autowired
@Autowired 是一个更通用的注解,可以被用于字段、构造器、方法等。
它默认按类型(by-type)进行自动装配(autowiring),也可以通过 @Qualifier 注解指定具体的 bean。
@Autowired 可 ...
springboot~ImportBeanDefinitionRegistrar在自定义RPC框架中的使用
一、自定义RPC框架使用场景示例
1. 需求场景:服务注册与发现的自动配置
入口注解设计:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Import(RpcComponentRegistrar.class)
public @interface EnableRpc {
// 扫描的包路径
String[] basePackages() default {};
// 注册 ...
如何删除PDF的某一页?完全免费!
前言
大家好,我是小徐啊。我们在开发Java应用的时候,经常是需要和pdf文档打交道的。
有的时候,我们想要把pdf文档里面的某一页删除掉,该怎么做呢?今天,小徐就来介绍一款免费的小工具,帮助我们免费删除pdf页。
一起来看看吧!
如何删除PDF的某一页?完全免费!
首先,我们打开微信,在搜索框里面,输入pdf编辑器小帮手 ...
Java测试类、工具类与JavaBean对比解析
Java中测试类的详细分析
测试类主要用于验证代码逻辑的正确性,通常使用测试框架(如JUnit、TestNG)编写。其核心特点是:
命名规范:以Test结尾,如UserServiceTest。
依赖管理:不依赖具体实现,仅针对接口或公共方法进行测试。
方法设计:每个测试方法独立运行,通过断言(assertEquals、assertTrue等)验证结果。
注解 ...
记apifox-验证码解析
通常在获取验证码时回需要一些动态的时间戳,记解析动态码的脚本
如接口/sys/randomImage/{{timestamp}}
主要2个动作,一个前置,一个后置
pm.globals.set('timestamp', new Date().getTime())
console.log("设置全局时间戳变量"+pm.globals.get("timestamp"));
前置
//通过.json()函数,获取到响应体中返回的jso ...
基于AQS实现的ReentrantLock
基于AQS实现的ReentrantLock
这里的源码用的Java8版本
lock方法
当ReentrantLock类的实例对象尝试获取锁的时候,调用lock方法,
会进入sync的lock方法,其中Sync是ReentrantLock的一个内部类,ReentrantLock构造方法会默认使用非公平锁NonfairSync,这个类是继承于Sync的
final void lock() {
if (!in ...
Web server failed to start. Port 8080 was already in use. 端口被占用
本文介绍了如何在遇到Web服务器无法启动,因为端口8080被占用时,通过Windows命令行工具(netstat和tasklist)查找占用进程,识别其PID并使用taskkill强制结束进程的过程。
1、cmd回车打开命令窗口
查看端口号是否被占用 netstat -ano|findstr “8080”
2、查看进程号对应的进程名称 tasklist|findstr “12760”
3、直接 ...
告别手动注入!Bean Assistant插件让SpringBoot开发效率翻倍🚀
开发者高频痛点:Bean注入为何如此麻烦?
在SpringBoot项目中,你是否经常遇到这些场景?
✅ 在Controller中注入Service时,需要反复滚动代码到类顶部
✅ 每次手动编写@Resource/@Autowired注解和字段声明
✅ 类文件过长时,定位注入位置消耗时间
传统操作示例
常规的操作就是我先在第 13 行手写如下代码,接着调用方法。
...
Spring AI学习:使用WSL2安装Ubuntu&安装redis-8.4.0
背景:
spring ai中提供了RAG功能接口,需要搭配向量数据库,我选择了最新版redis作为外部向量数据库
(redis7可以安装stack包来支持向量存储,redis8本身已集成向量存储功能)
(redis8.0.0已有windows适配版本,redis8.4.0的windows适配尚未发布)
开启WSL2:
进入以下界面,点击红框
勾选以下两项并确定
...
为什么 IO 流通常只能被读取一次
今天我们来一起探讨下 为什么 IO 流通常只能被读取一次?
我为什么会发出这个疑问呢?是因为我研究Web开发中的一个问题时,HTTP请求体在 Filter(过滤器)处被读取了之后,在 Controller(控制层)就读不到值了,使用 @RequestBody 的时候。
无论是字节流(InputStream / OutputStream)还是字符流(Reader / Writer) ...
Spring Cloud Gateway 启动流程源码分析
目录配置和启动类启动 nettyserver创建websever重要方法 reactor.netty.transport.ServerTransport#bindjvisualvm监控验证以下分析以 spring-cloud-starter-gateway 4.1.0 源码为分析样本。
配置和启动类
如果我们要使用 Spring Cloud Gateway,需要在pom里引入如下依赖:
<dependency>
<groupId>org.springframework.cl ...
剑指offer-16、合并两个有序链表
题⽬描述
输⼊两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满⾜单调不减规则。
如输⼊{1,3,5} , {2,4,6} 时,合并后的链表为{1,2,3,4,5,6} ,所以对应的输出为{1,2,3,4,5,6} ,转换过程如下图所示:
思路及解答
迭代法(双指针)
使用两个指针分别遍历两个链表,比较当前节点的值,将较小的节 ...
Tomcat的事件监听机制:观察者模式
Lifecycle中出现的监听器
(老的版本中是LifecycleSupport接口)
public interface Lifecycle {
/** 第1类:针对监听器 **/
// 添加监听器
public void addLifecycleListener(LifecycleListener listener);
// 获取所以监听器
public LifecycleListener[] findLifecycleListeners();
// 移除某个监 ...
记录一下新建模块时关于Spring Security的相关配置类
一开始接触开源框架的时候,尤其是微服务类的,需要新建一个模块来写自己的业务,这与单体应用那样毫无解耦的缠在一起区别很大。
新的模块因为解耦不仅相互独立,而且彼此之间的配置无法相互调用,这时如果你的全局配置使用了Spring Security,
无论写多少MVC结构的Restful接口,都一定是无法测试成功的,而报错原因也都是4 ...
PDF处理控件Aspose.PDF教程: 在 Java 中编辑 PDF 页面大小
PDF 的页面大小决定了其内容的显示、打印或处理方式。在准备打印、转换格式或标准化布局时,我们通常需要更改PDF文档的纸张大小。在本教程中,您将学习如何使用Aspose.PDF for Java 编辑任何 PDF 文件的页面大小。我们将通过完整的代码示例,逐步指导您完成操作。
Aspose.PDF试用版下载,可联系Aspose中国区官方 ...
SpringBoot 创建及登录、拦截器的实现
目录1.创建2.登录和拦截器2.1 session2.1.1 登录2.2 tokentoken 说明session 和 token 的区别2.2.1 常建工具类用于创建token和解析token密钥2.2.2 修改登录3.springboot统一的响应格式springboot统一的响应格式好处:标准化接口设计错误处理规范化简化客户端处理增强可维护性监控和统计实现方式典型应用场景具体实现:1.创 ...
HTTP请求头中表示代理IP地址的属性及获取情况
博客:https://www.emanjusaka.com
公众号:emanjusaka的编程栈
by emanjusaka from https://www.emanjusaka.com/archives/http-proxy-ip
本文为原创文章,可能会更新知识点以及修正文中的一些错误,全文转载请保留原文地址,避免产生因未即时修正导致的误导。
代理服务器类型
透明代理服务器(Transparent Proxies)
透 ...
秒杀/高并发解决方案+落地实现 (技术栈: SpringBoot+Mysql + Redis +RabbitMQ +MyBatis-Plus +Maven + Linux + Jmeter ) -05
秒杀/高并发解决方案+落地实现 (技术栈: SpringBoot+Mysql + Redis +RabbitMQ +MyBatis-Plus +Maven + Linux + Jmeter ) -05
@目录秒杀/高并发解决方案+落地实现 (技术栈: SpringBoot+Mysql + Redis +RabbitMQ +MyBatis-Plus +Maven + Linux + Jmeter ) -05Redis 分布式锁探讨用户名是手机号: 13300000000 密码为: 123456 ...
java使用maven-shade-plugin打包
最近正在练习Flink JAVA编程,但是发现打包后老大的问题。
环境说明:
jdk17
springboot 3.4.6
flink 1.20.0
一、问题发现和解决
在pom.xml的依赖部分,和flink有关的内容如下:
<!-- Original Flink Dependencies -->
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-core ...