0
<bean id="arrayDescriptor"
    class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
    <property name="targetObject">
        <value>oracle.sql.ArrayDescriptor</value>
    </property>
    <property name="targetMethod">
        <value>createDescriptor</value>
    </property>
    <property name="arguments">
        <list>
            <value>UDB_NAME</value>
            <value>#{database.getConnection()}</value>
        </list> 
    </property>
</bean>

(String, org.basic.datasource.PoolableConnection) を取得する代わりに (String, java.sql.Connection) の引数が必要なため、メソッドを機能させることができないようです。

ELでタイプキャストすることは可能ですか? 私はそれが不可能であると研究しています。別のSpring APIを使用してメソッドと引数を実行できますか? インターフェイスでSpringでインスタンス化することは可能ですか? 私は研究をしていますが、それは不可能です。

4

1 に答える 1

0

まず第一に、接続ではなく、ArrayDescriptor.createDescriptor()が必要です。DataSource私はdatabase表すと思いDataSourceます、試してみてください:

<value>#{database}</value>

あるいは:

<ref bean="database"/>

Java構成を使用して、このXML地獄を回避するのはどうですか?

@Configuration
public class Cfg {

    @Resource
    private DataSource database;

    @Bean
    public ArrayDescriptor arrayDescriptor() {
        return ArrayDescriptor.createDescriptor("UDB_NAME", database);
    }
}
于 2012-04-17T16:01:19.847 に答える