在felix scr注释中使用metatype属性

时间:2016-01-19 10:29:01

标签: java osgi apache-felix apache-karaf

我在项目中使用scr注释。任何人都可以在@Component注释中解释metatype属性的用例吗?

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

1 个答案:

答案 0 :(得分:1)

如Felix SCR Annotations的documentation中所述:"如果此参数设置为true,则在此组件的metatype.xml文件中生成Metatype Service数据。否则,不会为此组件生成元数据类型服务数据。"

管理系统或GUI(例如Felix Web Console)可以使用元数据类型数据来提供更有用的配置组件的方法。

我认为你应该始终打开这个标志,因为它可能在将来有用,并且即使你从不使用它也基本上没有成本。

顺便说一句,您可能应该停止使用Felix SCR注释,因为它们正逐步淘汰,以支持OSGi的标准DS注释。有关详细信息,请参阅OSGi Compendium规范的第112.8节(第5版或更高版本)。