在CamelContext之外配置数据源用户标识/密码/实例/端口?

时间:2014-04-28 15:08:03

标签: java sql apache-camel

以下是我们上下文的摘录:

   <bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close">
    <property name="driverClass" value="oracle.jdbc.OracleDriver"/>
    <property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:ORA11G"/>
    <property name="username" value="USER"/>
    <property name="password" value="PASSWORD"/>
    <property name="maxConnectionsPerPartition" value="30"/>
    <property name="minConnectionsPerPartition" value="10"/>
    <property name="partitionCount" value="3"/>
    <property name="acquireIncrement" value="5"/>
    <property name="statementsCacheSize" value="100"/>
    <property name="connectionTestStatement" value="SELECT 1 FROM DUAL"/>
</bean>

我有一个现有的Java类,可以解密包含用户名/密码/端口/实例信息的专有加密二进制文件。希望重复使用它,因为它当前存在,并且它是一个较少的配置项来跟踪/搞乱。更不用说以纯文本形式存储用户/密码信息了。

有没有办法覆盖这些SQL属性值以便在路由中使用下游?

2 个答案:

答案 0 :(得分:0)

使用一组属性创建数据源然后用另一组属性覆盖它们似乎效率低下。为什么不一气呵成呢?

您可以实现自己的数据源类来读取二进制文件!数据源将具有读取文件的特殊解密对象的实例。在定义数据源bean时,文件位置可以作为属性传递给数据源。

答案 1 :(得分:0)

您没有提到您正在使用的Spring版本,但无论如何您可以使用bean后处理器或使用Spring Expression Language(Spring-EL)设置这些属性。这是one example(可能还有其他人)。

然后,您可以直接将二进制文件读取类作为bean使用,或者如果它没有间接需要的必需方法(例如getter)(例如通过其他bean中的组合) ,即你编写的利用二进制文件读取类的类的实例。