【发布时间】:2016-03-16 12:24:02
【问题描述】:
Blueprint <bean> 标签创建的实例能否自动注入使用 OSGi 声明式服务机制指定的服务引用?
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
@Component(service={})
public class DatabaseThing{
@Reference
public void setDataSource(DataSource ds){
...
}
如果我通过@Component 中的immediate=true 进行实例化,那么我的DataSource OSGi 服务就会被注入。如果我通过蓝图<bean class="DatabaseThing"> 创建实例,则不会发生自动注入。
我查看了 Aries 源代码,似乎服务注入特定于 org.apache.aries.blueprint.container.ServiceRecipe,而不是用于 <bean> 样式实例化的 ...BeanRecipe 的一部分。
【问题讨论】:
标签: osgi blueprint-osgi