6.3. 配置 JDBC 数据源
如 OSGi 事务架构 中所述,在 OSGi 服务 registry 中必须注册一些服务。正如您 找到 (查找)事务管理器实例(例如 javax.transaction.UserTransaction
接口)的事务管理器实例一样,您可以使用 javax.sql.DataSource
接口与 JDBC 数据源相同。要求是:
- 与目标数据库通信的数据库特定数据源
- 您可以配置池以及可能的事务管理(XA)的通用数据源
在 OSGi 环境中,如 Fuse,如果它们注册为 OSGi 服务,则可从应用程序访问数据源。基本上,它按如下方式完成:
org.osgi.framework.BundleContext.registerService(javax.sql.DataSource.class, dataSourceObject, properties); org.osgi.framework.BundleContext.registerService(javax.sql.XADataSource.class, xaDataSourceObject, properties);
注册这些服务的方法有两种:
-
使用
jdbc:ds-create
Karaf console 命令发布数据源。这是 配置方法。 -
使用 Blueprint、OSGi Declative Services(SCR)或只使用
BundleContext.registerService()
API 调用来发布数据源。这个方法需要专用的 OSGi 捆绑包,其中包含代码和/或元数据。这是 the_deployment 方法_。