Можно ли автоматически внедрять экземпляры, созданные с помощью тега 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){
...
}
Если я создам экземпляр через immediate=true
в @Component, тогда будет внедрена моя служба DataSource OSGi. Если я создам экземпляр с помощью схемы <bean class="DatabaseThing">
, то автоинъекция не произойдет.
Я просмотрел исходный код Aries, и мне кажется, что сервисная инъекция специфична для org.apache.aries.blueprint.container.ServiceRecipe
и не является частью ...BeanRecipe
, который используется для создания экземпляра в стиле <bean>
.