我正在使用带有Oracle数据库的camel quartz组件来获取和保存调度程序。我的数据库用户名和密码在属性文件中,并且以下列方式为该组件设置了该属性文件,
<bean id="quartz" class="org.apache.camel.component.quartz.QuartzComponent">
<property name="properties">
<ref bean="job.properties"/>
</property>
</bean>
问题:数据库密码是加密的,使用上述方法,我无法设置解密密码。有什么办法可以将解密的数据库密码设置为Quartz Component吗?
答案 0 :(得分:0)
这是我找到的解决方案。
创建一个bean并将job.properties设置为该bean。
<bean id="propertyPreProcessor" class="MyPropertyPreProcessor">
<property name="properties">
<ref bean="job.properties"/>
</property>
</bean
然后在bean类中,我添加了一个处理注入属性的方法(解密db密码)并返回一个带有已处理值的新Property对象。
为qartz组件调用该方法如下。
<bean id="quartz" class="org.apache.camel.component.quartz.QuartzComponent">
<property name="properties" value="#{propertyPreProcessor.getProcessedProperties()}"/>
</property>
</bean>