2016-01-19 4 views
0

Я использую аннотации scr в моем проекте. Может ли кто-нибудь объяснить usecase атрибута metatype в аннотации @Component?usecase атрибута metatype в аннотациях felix scr

import org.apache.felix.scr.annotations.Activate; 
import org.apache.felix.scr.annotations.Component; 
import org.apache.felix.scr.annotations.Reference; 
import org.apache.felix.scr.annotations.ReferenceCardinality; 
import org.apache.felix.scr.annotations.ReferencePolicy; 
import org.apache.felix.scr.annotations.Service; 
    @Component (name = "SampleComponent", label = "TestLabel", description = "This is a test application", ds = true, immediate = false, metatype = true, factory = "com.java.test.sampleComponent") 
    @Service 
+0

Существует несколько пакетов, содержащих аннотацию '@ Component'. Не могли бы вы указать, что вы используете? Включение оператора Java 'import' поможет. –

+0

@Service делает его похожим на аннотации Felix SCR. –

ответ

0

Как указано в documentation для Felix SCR аннотаций: «Если этот параметр установлен в истинные данные метатипа службы генерируется в файле metatype.xml для этого компонента В противном случае никаких данных метатипа Service не генерируются для этого компонента. «.

Данные метатипа могут использоваться административными системами или графическими интерфейсами, такими как Felix Web Console, чтобы предоставить гораздо более удобный способ настройки вашего компонента.

Я думаю, что вы всегда должны включать этот флаг, поскольку он может быть полезен в будущем и имеет в основном нулевую стоимость, даже если вы его никогда не используете.

Кстати, вам, вероятно, следует прекратить использование аннотаций Felix SCR, поскольку они постепенно прекращаются в пользу стандартных аннотаций DS от OSGi. Подробности см. В разделе 112.8 спецификации OSGi Compendium (выпуск 5 или более поздней).

+0

Спасибо за объяснение. Тем не менее мы находимся в karaf 2.3.10, который использует OSGi rev 4.2. Поскольку вы настоятельно рекомендуете не использовать SCR, существуют ли какие-либо ограничения? – Shriram

+0

Хорошо, если вы используете 7-летнюю версию OSGi, тогда ограничения аннотаций SCR являются наименьшим из ваших забот. –