Могут ли экземпляры, созданные тегом Blueprint <bean>
, автоматически вводиться ссылками на службы, указанными с использованием механизма декларативных служб OSGi?Может ли beprint beans иметь @Reference услуги, вводимые автоматически?
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">
, то автоматическая инъекция не произойдет.
Я имел взгляд на источнике Овна, и, кажется, что введение услуг является специфичным для org.apache.aries.blueprint.container.ServiceRecipe
и не является частью ...BeanRecipe
, которая используется для <bean>
стиля конкретизации.
Большое спасибо Кристиан - я думал так много, но ваше подтверждение приветствуется. Аннотации pax-cdi выглядят так, как будто они могут быть то, что мне нужно - я просто хочу написать как можно меньше кода! –