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

我不确定您正在创建什么样的应用程序(库?),但除非它是一个网络应用程序。堆栈或其他东西,您可以要求客户端程序员传入数据源,例如通过构造函数。这确实是依赖注入的要点。

如果你应用。例如一个网络应用程序。像 Django 一样的堆栈,您仍然可以这样做,以便在内部将数据源传递给中间件(又名 DI)。这样的设计促进了模块化,并使得在其他项目中使用这部分代码变得容易。但是,您必须以某种方式从配置转到 DataSource,因此在某些时候您需要确定其机制是什么(例如 JNDI)。我认为这是完全可以接受的。

于 2013-01-01T08:32:33.610 回答
0

您可以使用标准池/缓存库并让用户对其进行配置。像 Apache Jakarta Pool 还是 ehcache?

于 2013-01-01T08:22:11.860 回答