如何在 java 中使用来自另一个包的 OSGI 引用
How to use an OSGI reference from another bundle in java
我正在使用 JBoss Fuse,我创建了一个导出 DataSouce 的包,现在我想查询它。
在另一个包的蓝图中引用了所述数据源:
<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
,但您可以将其替换为您想要使用的任何内容。
我正在使用 JBoss Fuse,我创建了一个导出 DataSouce 的包,现在我想查询它。
在另一个包的蓝图中引用了所述数据源:
<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
,但您可以将其替换为您想要使用的任何内容。