它定义了felix SCR注释的文档。 http://felix.apache.org/site/scr-annotations.html#SCRAnnotations-Reference
我想使用@Reference Annotation,并且还想将目标服务设置为配置参数。
文档说明:服务目标过滤器,用于选择要使用的特定服务。为了能够通过配置属性覆盖此值的值,必须声明此参数。如果未声明参数,则不会生成相应的声明属性
如何声明此参数。
答案 0 :(得分:1)
有点晚了,但我无法在任何地方找到一个简单的例子,所以无论如何这可能会帮助其他人。
例如,使用Felix注释过滤DataSource:
@Reference(cardinality = OPTIONAL_UNARY, policy = DYNAMIC, name = "dataSource")
private DataSource dataSource;
生成此XML:
<reference name="dataSource" interface="javax.sql.DataSource" cardinality="0..1" policy="dynamic" bind="bindDataSource" unbind="unbindDataSource"/>
该属性需要根据OSGi 4.2 Compendium Spec
的第112.6节附加 .target因此,在我的配置中,我将LDAP过滤器设置为:
dataSource.target = (some.key=some.value)
注意:我没有使用un / bind方法,让DS为我生成这些方法。