如何在java中使用来自另一个bundle的OSGI引用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在java中使用来自另一个bundle的OSGI引用相关的知识,希望对你有一定的参考价值。
我正在使用JBoss Fuse,我创建了一个导出DataSouce的包,现在我想查询它。
在另一个包的蓝图中有对所述DataSource的引用:
<reference
id="myDataSource"
filter="(osgi.jndi.service.name=myDataSouce)"
interface="javax.sql.DataSource"
/>
如何从java代码访问此引用,以便我可以查询它?
答案
您可以创建自定义Bean:
<bean id="myDsBean" class="my.company.MyDsBean">
<property name="dataSource" ref="myDataSource" />
</bean>
Java代码:
public class MyDsBean {
private JdbcTemplate myds;
public void setDataSource(DataSource ds) {
this.myds = new JdbcTemplate(ds);
}
// Code to query data source
}
我的例子是使用JdbcTemplate
,但你可以将它替换为你想要使用的任何东西。
以上是关于如何在java中使用来自另一个bundle的OSGI引用的主要内容,如果未能解决你的问题,请参考以下文章
如何使用来自 maven-bundle-plugin 的 bnd 指令?
OSGI Bundle 中的 Android Activity
如何使用来自另一个 Dataset<Row> 的记录更新 Dataset<Row>,这些记录在 Spark 中使用 JAVA API 具有相同的模式?