【问题标题】:usecase of metatype attribute in felix scr annotationsfelix scr 注释中元类型属性的用例
【发布时间】:2016-04-24 18:48:15
【问题描述】:

我在我的项目中使用 scr 注释。谁能解释@Component注解中元类型属性的用例?

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

【问题讨论】:

  • 有几个包提供了@Component 注释。你能指定你使用的是哪个吗?包含 Java import 语句会有所帮助。
  • @Service 使它看起来像是在使用 Felix SCR 注释。

标签: java osgi apache-felix apache-karaf


【解决方案1】:

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

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

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

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

【讨论】:

  • 感谢您的解释。我们仍然处于使用 OSGi rev 4.2 的 karaf 2.3.10 中。既然您强烈建议不要使用 SCR,有什么限制吗?
  • 嗯,如果您使用的是 7 年前的 OSGi 版本,那么您最不必担心 SCR 注释的限制。
猜你喜欢
  • 2017-07-29
  • 1970-01-01
  • 1970-01-01
  • 2018-04-27
  • 2017-03-03
  • 2017-04-07
  • 2011-10-15
  • 2017-12-19
  • 1970-01-01
相关资源
最近更新 更多