2

我想share-config-custom.xml从 Share webapp 中的 Java bean 访问数据。

什么等效于以下 javascript 语法(访问配置根对象)但在 Java 上下文中:

config.scoped['RepositoryLibrary']['root-node']

是否将 share-config-custom 转换为 bean 本身?或者是否有从 Java 读取它的 API?

4

2 回答 2

4

首先,没有“合理”的方式来使用这个 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.

于 2013-01-04T17:41:04.937 回答
1

我知道这已经回答了,但安德烈亚斯的回答只让我走到了一半。配置类现在实际上是 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 中。

于 2013-05-17T15:00:51.587 回答