以下是我们上下文的摘录:
<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属性值以便在路由中使用下游?
答案 0 :(得分:0)
使用一组属性创建数据源然后用另一组属性覆盖它们似乎效率低下。为什么不一气呵成呢?
您可以实现自己的数据源类来读取二进制文件!数据源将具有读取文件的特殊解密对象的实例。在定义数据源bean时,文件位置可以作为属性传递给数据源。
答案 1 :(得分:0)
您没有提到您正在使用的Spring版本,但无论如何您可以使用bean后处理器或使用Spring Expression Language(Spring-EL)设置这些属性。这是one example(可能还有其他人)。
然后,您可以直接将二进制文件读取类作为bean使用,或者如果它没有间接需要的必需方法(例如getter)(例如通过其他bean中的组合) ,即你编写的利用二进制文件读取类的类的实例。