我想在我的属性文件中移动一些配置,但出于安全目的,不希望它在运行时被覆盖。春季靴子可以做到吗?
谢谢, Manish
答案 0 :(得分:2)
这样的东西应该可以工作,secure.properties中的任何东西都将无法被覆盖,因为它将被添加到env的开头(来自属性文件),而不管被覆盖的是什么。
@Configuration
public class SecurePropertiesConfig {
@Autowired
private ConfigurableEnvironment env;
@Autowired
public void setConfigurableEnvironment(ConfigurableEnvironment env) {
try {
final Resource resource = new ClassPathResource("secure.properties");
env.getPropertySources().addFirst(new PropertiesPropertySource(resource.getFilename(), PropertiesLoaderUtils.loadProperties(resource)));
} catch (Exception ex) {
throw new RuntimeException(ex.getMessage(), ex);
}
}
}