防止覆盖application.properties中的某些属性 - Spring Boot

时间:2017-10-31 15:40:57

标签: java spring spring-boot properties

我想在我的属性文件中移动一些配置,但出于安全目的,不希望它在运行时被覆盖。春季靴子可以做到吗?

谢谢, Manish

1 个答案:

答案 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);
        }
    }
}