springboot升级后RelaxedPropertyResolver怎么替换
时间: 2024-08-16 08:04:37 浏览: 116
Springboot 1.5 升级 2.0.2 天坑记录
Spring Boot 2.x版本引入了`RelaxedPropertyResolver`用于处理属性文件(如application.properties、application.yml)中的配置。这个类提供了一种更宽松的方式解析环境变量、系统属性以及传统的Spring Property Source。
在Spring Boot 3.x及更高版本中,`RelaxedPropertyResolver`已被弃用,因为它的一些功能已经被新的`EnvironmentVariablesPropertySource`和`SystemPropertiesPropertySource`替代,同时支持了更多的特性。如果你需要在新版本中处理属性源,你可以直接从`org.springframework.boot.context.properties.ConfigurationProperties`注解或者`spring.application.sources`配置属性中获取环境变量和系统属性。
如果你想保持类似的功能,可以手动创建`PropertySourcesPlaceholderConfigurer`或者使用Spring Framework的`PropertySourceLocator`来加载和合并所有的属性来源,例如:
```java
@Configuration
public class AppConfig {
@Bean
public static PropertySource<?> propertySource() {
Map<String, Object> properties = new HashMap<>();
// 添加你的属性映射...
return new MapPropertySource("custom", properties);
}
@Bean
public CustomPropertyResolver customResolver() {
return new CustomPropertyResolver(Arrays.asList(propertySource()));
}
}
```
这里`CustomPropertyResolver`是你自定义的类,它应该继承`PropertyResolver`并实现所需的查找逻辑。
阅读全文