我想share-config-custom.xml
从 Share webapp 中的 Java bean 访问数据。
什么等效于以下 javascript 语法(访问配置根对象)但在 Java 上下文中:
config.scoped['RepositoryLibrary']['root-node']
是否将 share-config-custom 转换为 bean 本身?或者是否有从 Java 读取它的 API?
首先,没有“合理”的方式来使用这个 API “查看”一个 XML 配置文件。通常,ConfigService
创建一个从各种来源合并的配置。但是无论如何都不需要直接查看 XML。
话虽如此,Javascript 对象config
实际上是一个 org.springframework.extensions.webscripts.ScriptConfigModel
.
要在 Java 中获得等价的东西,请参考ConfigService
. 要获取引用,让 spring 将其注入到您的自定义 bean 中:
<property name="configService" ref="web.config" />
调用configService.getGlobalConfig()
应该让你相当于config.scoped
.
我知道这已经回答了,但安德烈亚斯的回答只让我走到了一半。配置类现在实际上是 XMLConfigService。
这是一个适用于 Enterprise 4.1.* Alfresco 的代码片段:
Java 类
import org.springframework.extensions.config.xml.XMLConfigService;
public class PDFValidate extends BaseJavaDelegate implements ExecutionListener
{
protected XMLConfigService configService;
public void setConfigService( XMLConfigService scriptConfigModel )
{
this.configService = scriptConfigModel;
}
豆注册:
<bean id="AbstractWorkflowDelegate" parent="baseJavaDelegate" abstract="true" depends-on="activitiBeanRegistry" />
<bean id="PDFValidate" parent="AbstractWorkflowDelegate" class="com.epnet.alfresco.metadata.listener.PDFValidate">
<property name="repository" ref="repositoryHelper" />
<property name="configService" ref="web.config" />
</bean>
从那里,您可以在您的 java 代码中使用 configService 来获取配置值。XMLConfigService 位于我的 Alfresco 版本的 spring-surf-core-configservice-1.2.0-SNAPSHOT.jar 中。