我在一个部署在karaf上的blueprint.xml中定义了一个dataSource:
<bean id="dataSource" class="com.mysql.jdbc.jdbc2.optional.MysqlDataSource">
<property name="url" value="jdbc:mysql://server/db"/>
<property name="user" value="user"/>
<property name="password" value="password"/>
</bean>
<service interface="javax.sql.DataSource" ref="dataSource">
<service-properties>
<entry key="osgi.jndi.service.name" value="jdbc/mysqlDatasource" />
</service-properties>
</service>
在我的blueprint.xml内的bundle中,我得到了以下这个数据源的引用和bean:
<reference id="dataSource" interface="javax.sql.DataSource"
filter="(osgi.jndi.service.name=jdbc/mysqlDatasource)">
</reference>
<bean id="sql" class="org.apache.camel.component.sql.SqlComponent">
<property name="dataSource" ref="dataSource" />
</bean>
这样我可以在我的camel sql组件中使用dataSource。
是否可以将此数据源放入此捆绑包中的任何其他java类?
<bean id="somebean" class="some.path.to.SomeClazz">
<property name="dataSource" ref="dataSource" />
</bean>
因为在这种情况下这显然不起作用。