Spring 是否有<;的PropertyPlaceHolder配置程序;portlet首选项>;?

Spring 是否有<;的PropertyPlaceHolder配置程序;portlet首选项>;?,spring,portlet,preferences,Spring,Portlet,Preferences,我了解到存在以下问题: 将占位符解析为ServletContext init参数(即web.xml上下文参数条目) 有人知道类似于解析占位符的PropertyPlaceholderConfigurer(即portlet.xmlportlet首选项条目)吗 下面是我如何解决这个问题的,我最终编写了一个类似于ServletContextPropertyPlaceHolderConfigure的类…-) 干杯, Gerson你有没有发现如何做到这一点?遗憾的是,没有。我最终用getPortletPre

我了解到存在以下问题:

将占位符解析为ServletContext init参数(即web.xml上下文参数条目)


有人知道类似于解析占位符的
PropertyPlaceholderConfigurer
(即
portlet.xml
portlet首选项
条目)吗

下面是我如何解决这个问题的,我最终编写了一个类似于ServletContextPropertyPlaceHolderConfigure的类…-)

干杯,
Gerson

你有没有发现如何做到这一点?遗憾的是,没有。我最终用getPortletPreference方法创建了一个bean。然后,我在spring配置中使用这个bean将首选项值定义为bean——我可以在整个spring配置中使用它。到目前为止,它对我们很有效。
public class PortletConfigPropertyPlaceholderConfigurer extends
        PropertyPlaceholderConfigurer implements PortletConfigAware {

    private PortletConfig portletConfig;

    private boolean configOverride = false;

    public void setPortletConfig(PortletConfig portletConfig) {
        this.portletConfig = portletConfig;
    }

    public void setConfigOverride(boolean configOverride) {
        this.configOverride = configOverride;
    }

    @Override
    protected String resolvePlaceholder(String placeholder, Properties props) {
        String value = null;
        if (this.configOverride && this.portletConfig != null) {
            value = resolvePlaceholder(placeholder, this.portletConfig);
        }
        if (value == null) {
            value = super.resolvePlaceholder(placeholder, props);
        }
        return value;
    }

    protected String resolvePlaceholder(String placeholder,
            PortletConfig portletConfig) {
        return portletConfig.getInitParameter(placeholder);
    }
}