gpt4 book ai didi

spring - 访问自定义 PropertyPlaceholderConfigurer 中的属性

转载 作者:行者123 更新时间:2023-12-01 11:30:19 24 4
gpt4 key购买 nike

我们使用的是 Spring 4.2.5 版本。基本上需要有一个 PropertyPlaceholderConfigurer 的自定义实现,以便在使用它们之前解密数据。这很好用。但是,我还需要能够根据属性(使用普通上下文读取:属性占位符)更改此自定义实现中使用的加密机制。有没有办法让它工作?

最佳答案

最简单的方法不是使用自定义 PropertyPlaceholderConfigurer,而是使用自定义 DefaultPropertiesPersister。这是这样配置的:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:...</value>
<value>...</value>
</list>
</property>
<property name="propertiesPersister">
<bean class="yourPropertiesPersister"/>
</property>
...
</bean>

然后 yourPropertiesPersister 需要扩展 DefaultPropertiesPersister 让你实现:

public void load(Properties props, InputStream is) throws IOException {
super.load(props, is);
decrypt(props);
}

@Override
public void load(Properties props, Reader reader) throws IOException {
super.load(props, reader);
decrypt(props);
}

private void decrypt(Properties props) {
// your logic here
}

调用 super.load(...) 将加载原始属性(内容未解密)。只需根据某些属性的内容将逻辑添加到方法 decrypt(props) 中。将解密后的属性添加到 props

关于spring - 访问自定义 PropertyPlaceholderConfigurer 中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38652691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com