依赖版本变更
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作为初始化命名空间,必须创建一个命名空间,不然会无法找到