Google에서 문제를 찾고자했지만 해결책을 얻을 수 없었습니다. 내가Spring MethodInvokingBean - 반환 된 값이 DriverManagerDataSource에 의해 받아 들여지지 않았습니다.
는 아래의 코드를 볼 달성하기 위해 노력하고 무엇
은, 내가 뭘하려고 정적 메서드 decrypt
을 사용하고 해독하는 com.xxxxxxx.CryptoUtil
를 사용 MethodInvokingBean
에 암호화 된 암호를 전달할 수 있습니다.
암호 해독 된 값이 <property name="password" ref="decryptedDBPassword" />
을 통해 masterDBDatasource
에 삽입되지만 작동하지 않습니다. 예외
org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'org.springframework.beans.factory.config.MethodInvokingBean' to required type 'java.lang.String' for property 'password'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [org.springframework.beans.factory.config.MethodInvokingBean] to required type [java.lang.String] for property 'password': no matching editors or conversion strategy found
<bean id="decryptedDBPassword" class="org.springframework.beans.factory.config.MethodInvokingBean">
<property name="targetClass" value="com.xxxxxxx.CryptoUtil"/>
<property name="targetMethod" value="decrypt"/>
<property name="arguments" value="${encrypted.db.password}" />
</bean>
<bean id="masterDBDatasource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${db.driver.class}" />
<property name="url" value="${db.url}" />
<property name="username" value="${db.username}" />
<property name="password" ref="decryptedDBPassword" />
</bean>
나는 참조
https://www.mkyong.com/spring/spring-methodinvokingfactorybean-example/
나는 또한 <property name="password" value="decryptedDBPassword" />
시도하지만 DB 연결이 말하는대로 아래의 튜토리얼을 따라 - 액세스로 인해 거부 유효하지 않은 비밀번호.
친절히 도움.