簡體   English   中英

Spring Boot 2.x連接工廠

[英]Spring Boot 2.x Connection Factory

我有下面的類在Spring Boot 1.5.x中運行良好

public ConnectionFactory connectionFactory() {
        org.springframework.data.jdbc.config.oracle.AqJmsFactoryBeanFactory f=new AqJmsFactoryBeanFactory();
        f.setDataSource(dataSource);
        f.setCoordinateWithDataSourceTransactions(true);
        f.setNativeJdbcExtractor(new org.springframework.jdbc.support.nativejdbc.Jdbc4NativeJdbcExtractor());
        f.setConnectionFactoryType(ConnectionFactoryType.QUEUE_CONNECTION);
        try {
            return f.getObject();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

我現在已升級到不存在NativeJdbcExtractor的2.0.4版本。 有人可以幫我如何重新配置​​上面的內容以獲得connectionFactory。

整個nativejdbc層次結構已不存在,因此不再可用,因此不要升級或找出不需要它的方法(jdbc 4可以使用unwrap來獲取實際的基礎連接)。

為了獲得實際的基礎連接,在Connection上有一個unwrap方法。 因此,與connection.unwrap(OracleConnection.class)類似的東西應該可以為您提供實際的基礎連接。 但是,這可能需要對aq-jms-connection-factory進行額外的升級,我不確定它是否支持Spring 5.0。

我已經使用過類似的方法,可以為您提供幫助:

public OracleConnection getOracleConnection(Connection connection) throws SQLException {
    OracleConnection oconn = null;
    try {
        if (connection.isWrapperFor(oracle.jdbc.OracleConnection.class)) {
            oconn = (OracleConnection) connection.unwrap(oracle.jdbc.OracleConnection.class)._getPC();
        }
    } catch (SQLException e) {
        throw e;
    }
    return oconn;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM