2

アプリケーションでプールされたJDBCデータソースを取得しようとしています。私はオープンソースライブラリを作成していますが、構成を可能な限り構成可能にしたいと考えています。JNDIを使用したり、特定の種類の構成ファイルを強制的に使用したりしたくありません。

今、私はこれを行います:

MysqlConnectionPoolDataSource ds = new MysqlConnectionPoolDataSource();
ds.setDatabaseName("blah");
ds.setUrl("jdbc:mysql://blaggablah");
ds.setUser("jimbob");
ds.setPassword("dweezil");

将来MySQL以外のものを使用したい場合は、明らかに理想的ではありません。

データベースタイプや接続情報などのいくつかのパラメーターを受け取り、プールされたデータソースを提供する、ある種の汎用PooledDataSourceFactoryはありますか?

4

2 に答える 2

1

I'm not sure what kind of application (library?) you are creating, but unless it's a web app. stack or something, you could ask the client programmer to pass-in the datasource, e.g. via the constructor. This is really the gist of dependency injection.

If you app. is e.g. a web app. stack like Django, you can still make it so that you internally pass a datasource to your middleware (a.k.a DI). Such design facilitates modularity, and makes it easy to use that part of code in other projects. However, you'll have to go from configuration to DataSource somehow, so at some point you need to decide what the mechanism for that will be (e.g. JNDI). I think that's perfectly acceptable.

于 2013-01-01T08:32:33.610 に答える
0

標準のプーリング/キャッシングライブラリを使用して、使用者に設定させることができます。Apache Jakartaプール、またはehcacheのように?

于 2013-01-01T08:22:11.860 に答える