【问题标题】:How to use an OSGI reference from another bundle in java如何在 java 中使用来自另一个包的 OSGI 引用
【发布时间】:2018-06-12 07:41:54
【问题描述】:

我正在使用 JBoss Fuse,我创建了一个导出 DataSouce 的包,现在我想查询它。

在另一个包的蓝图中有对所述数据源的引用:

  <reference 
      id="myDataSource"
      filter="(osgi.jndi.service.name=myDataSouce)" 
      interface="javax.sql.DataSource"
  />

如何从 java 代码中访问此引用以便查询它?

【问题讨论】:

    标签: java apache-camel osgi jbossfuse blueprint-osgi


    【解决方案1】:

    您可以创建自定义 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,但您可以将其替换为您想要使用的任何内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-22
      • 1970-01-01
      • 2013-11-27
      • 1970-01-01
      • 2013-09-24
      • 1970-01-01
      • 2018-02-20
      • 2018-02-12
      相关资源
      最近更新 更多