Springboot 3.5.7 + Springcloud 2025 升级记录

依赖版本变更

Springboot 3.5.7

Springcloud 2025.0.0

spring-cloud-alibaba 2025.0.0.0 (nacos相关组件)
其余略

Jakarta

废弃了JavaEE,改用了Jakarta EE

引入包的时候注意一下

如:jakarta.servlet.http.HttpServletRequest

Redis加载

读取的字段从spring.redis改成了spring.data.redis

nacos配置引入

由于springboot3+放弃了bootstrap.yml的加载,替换为application.yml

因此我们的配置需要写在application.yml中。而且是必须写在对应的application-profile.yml上

bash 复制代码
spring:
  config:
    import:
      - "optional:nacos:blade-test.yaml?group=DEFAULT_GROUP"
      - "optional:nacos:blade.yaml?group=DEFAULT_GROUP"
      - "optional:nacos:${spring.application.name}.yaml?group=DEFAULT_GROUP"

查看引入的变量(包含nacos配置)

ConfigurableEnvironment 类

bash 复制代码
@Bean
	@ConditionalOnMissingBean
	public RedisConnectionFactory redisConnectionFactory(ConfigurableEnvironment env) {
		String host = env.getProperty("spring.data.redis.host");
		Integer port = env.getProperty("spring.data.redis.port", Integer.class, 6379);
		String password = env.getProperty("spring.data.redis.password");
		if (host == null) {
			throw new IllegalStateException("Redis配置未从Nacos加载,请检查 redis-config.yaml 是否加载成功");
		}
		RedisStandaloneConfiguration config = new RedisStandaloneConfiguration(host, port);
		if (StringUtils.hasText(password)) {
			config.setPassword(RedisPassword.of(password));
		}
		return new LettuceConnectionFactory(config);
	}


Spring SPI加载机制变化

加载方式从之前的META-INF/spring.factories改成了META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

nacos命名空间

不再使用public作为初始化命名空间,必须创建一个命名空间,不然会无法找到

相关推荐
曹牧1 小时前
Spring Boot:如何测试Java Controller中的POST请求?
java·开发语言
爬山算法2 小时前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
kfyty7252 小时前
集成 spring-ai 2.x 实践中遇到的一些问题及解决方案
java·人工智能·spring-ai
猫头虎2 小时前
如何排查并解决项目启动时报错Error encountered while processing: java.io.IOException: closed 的问题
java·开发语言·jvm·spring boot·python·开源·maven
李少兄2 小时前
在 IntelliJ IDEA 中修改 Git 远程仓库地址
java·git·intellij-idea
忆~遂愿2 小时前
ops-cv 算子库深度解析:面向视觉任务的硬件优化与数据布局(NCHW/NHWC)策略
java·大数据·linux·人工智能
小韩学长yyds2 小时前
Java序列化避坑指南:明确这4种场景,再也不盲目实现Serializable
java·序列化
仟濹2 小时前
【Java基础】多态 | 打卡day2
java·开发语言
Re.不晚2 小时前
JAVA进阶之路——无奖问答挑战2
java·开发语言
Ro Jace3 小时前
计算机专业基础教材
java·开发语言