2016-05-20 32 views
0

接続プールから取得するすべての接続に対してOracleセッションを変更したいとします。Spring JdbcTemplate alter session

私はそれが単に文を実行することによって実行できることを発見しました。 hereを参照してください。

jdbcテンプレートまたはデータソースにフックし、接続プールが新しい接続を作成した後に文を実行する方法はありますか。

私は春のブートを使用してデータソースを作成していますその方法:そうするための方法はたくさんあります

@Bean 
@ConfigurationProperties(prefix="datasource.local") 
public DataSource localDataSource() { 
    return DataSourceBuilder.create().build(); 
} 

答えて

2

。 最初の1:

  • データソースはintefaceをされ、なぜあなたは(プロキシパターンを使用)、それを自分で実装していませんか?他のすべての方法はrealDataSourceに直接委譲します

    class MyDataSource implements DataSource { 
        private DataSource realDataSource; 
    
        public Connection getConnection() { 
          Connection c = realDataSource.getConnection(); 
          // do whatever you want to do and 
          return c; 
        } 
    
    } 
    

:このような何かを作成します 。

このプロキシは、提供されたコードスニペットで使用できます。

  • あなたはAOPを使用することができます。ちょうどget接続が作成された後に必要なものを実行するアドバイスを提供します。基本的に同じプロキシですが、自動的に春に作成されます。

希望します。

関連する問題