2017-01-22 11 views
0

dropwizard Hibernateリポジトリへの接続プロバイダとしてc3p0を使用する方法はありますか? 私はdropwizard設定ファイルにC3P0のプロパティを追加しましたが、私はそれが何かをしたとは思わない... はまた、私はそうポンポンファイルDropwizardとc3p0の統合

+0

https://github.com/mtakaki/dropwizard-hikaricp - HicariCPをデータベース接続プールとして統合するためのサンプルコード。 – zloster

答えて

0

にHibernateのC3P0の依存関係を追加し、私はここにほとんどの専門家よ、あなた私がdropwizardに遭遇したのは初めての質問です。

しかし、そのコードを簡単に見ると、tomcat-jdbc接続プールを使用するようにハードコードされているDataSourceFactoryに依存していることがわかります。しかし

、それはlooks likeあなたが休止状態(およびパーソナルプラグインDB-依存するモジュール)を直接DataSourceFactoryあなた自身を構築することにより構成し、かつそのクラスがfinalであることから、私はあなただけの独自のサブクラスを書いて、復帰へのビルドメソッドをオーバーライドすることができると思うので、適切に設定されたc3p0データソース、または(より簡単に)c3p0データソースがc3p0.propertiesファイル(またはc3p0がサポートするいくつかの設定スタイルのいずれか)からその設定を取得できるようにします。継承されたgetterとsetterは無意味です。これらのプロパティは無視され、dropwizardのjsonまたはyamlツールを使用してDataSourceを設定しようとすると無視されます。 (これらのgetterとsetterをオーバーライドして例外がスローされ、実装されていないことを通知することもできますが、明示的に設定しなくても呼び出されないことを確認する必要があります) MetricRegistryを設定することです、私はあなたが興味のあるプールについての統計を保持し、監視することを前提としています。しかしこれはあまり難しくありません:テンプレートの場合はManagedPooledDataSourceのstart()メソッド、c3p0 PooledDataSourceで監視できるすべての統計を参照してください。

DataSourceFactoryを拡張する必要はありません。 PooledDataSourceFactoryを実装する別のクラスを書くだけで十分でしょう。さらに、DatabaseConfigurationと呼ばれるクラスがあります。最後のコミットメッセージは「プラグインカスタムDB接続プールへの機能を追加します」というクラスです。しかし、私はこのクラスの例や文書を見つけることができません。 DataSourceFactoryを拡張するだけでc3p0を統合する方法と、suggested thatを持つ方法はかなり明確です。