我有一个用注释定义的配置接口
@ExtendedObjectClassDefinition(
category = "logging",
scope = ExtendedObjectClassDefinition.Scope.COMPANY
)
这样我就可以单独配置liferay实例。如何检索代码中的配置?
我尝试使用
ConfigurableUtil.createConfigurable(MyConfig.class, properties)
在我的激活方法中,它只接收系统范围的配置值。
为了弄清楚这一点,我总是 grep Liferay 的源代码,在本例中为
ExtendedObjectClassDefinition.Scope.COMPANY
,并查看它是如何使用的。
来自 AWSTranslator 的一个示例(第二顺序,相关配置是 AWSTranslatorConfiguration) - 请参阅 isEnabled 方法:
@Component(
configurationPid = "com.liferay.translation.translator.aws.internal.configuration.AWSTranslatorConfiguration",
service = Translator.class
)
public class AWSTranslator implements Translator {
public boolean isEnabled(long companyId) throws ConfigurationException {
AWSTranslatorConfiguration awsTranslatorConfiguration =
_configurationProvider.getCompanyConfiguration(
AWSTranslatorConfiguration.class, companyId);
return awsTranslatorConfiguration.enabled();
}
@Reference
private ConfigurationProvider _configurationProvider;
// other irrelevant code omitted
}