gpt4 book ai didi

java spring - 覆盖从属性文件接收到的属性值

转载 作者:行者123 更新时间:2023-11-29 04:51:39 26 4
gpt4 key购买 nike

我有一个场景,我从属性文件中获取编码密码值。我有自己的解密实现,所以想从我的 java 类中解密密码,然后想进一步使用该解密值,在它引用的地方。

例如
<bean id="myDataSource" class="org.apache.common.dbcp.BasicDataSource"
... // more attributed set from properties like user, hostname etc.
p:password="${myPropertey.password}"
>

上面的代码我需要实现类似下面的东西,具体到密码属性,因为其余属性很好,但密码在使用前需要解密。

(下面的实现是错误的,但我只是提到给出更多更清晰的想法)


<bean id="myDataSource" class="org.apache.common.dbcp.BasicDataSource"
... // more properties
p:password="myDecryptBean.decryptMyPassword(${myPropertey.password})"
>

基本上,在用于建立数据库连接之前,我需要解密从属性文件中获取的密码。

感谢您的宝贵时间和任何帮助!!

最佳答案

由于您使用的是 Spring,我强烈建议您查看 PropertyResourceConfigurer 类。查看Official Documentation .

请特别注意 convertProperty(String propertyName, String propertyValue) 方法并考虑创建一个覆盖它的类。然后,您将能够将自定义解密逻辑添加到覆盖方法中,每次 Spring 访问该属性时都会运行该方法。

直接来自文档:

Allows for configuration of individual bean property values from a property resource, i.e. a properties file. Useful for custom config files ... that override bean properties configured in the application context.

关于java spring - 覆盖从属性文件接收到的属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35231414/

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