web应用中对配置文件的包装

     <bean id="placeholderConfig" class="com.shz.utils.AdvancedPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:init.properties</value>
                <value>classpath:api.properties</value>                
            </list>
        </property>
    </bean>
    
     <bean id="systemProperties" class="java.util.HashMap" />

public class AdvancedPlaceholderConfigurer extends PropertyPlaceholderConfigurer{

    @SuppressWarnings({ "unchecked", "rawtypes" })
    @Override
    protected void processProperties(
            ConfigurableListableBeanFactory beanFactoryToProcess,
            Properties props) throws BeansException {
        
        super.processProperties(beanFactoryToProcess, props);
        
        /******** Set the properties to initProperties object ********/
        HashMap<String, String> systemProperties = (HashMap<String, String>)beanFactoryToProcess.getBean("systemProperties");
        logger.info("starting to load configs into systemProperties object ...");
        Enumeration e = props.propertyNames();
        while (e.hasMoreElements()) {
            String key = (String) e.nextElement();
            systemProperties.put(key,  props.getProperty(key));
        }
        logger.info("finished to load configs into systemProperties object");
    }
    
}

public String openAgent(AgentInfoParams forexAgentInfoParams) {
        init();
        try {
            ApplicationContext context = MyContextLoaderListener.getApplicationContext();
            Map<String, String> systemProperties = (Map<String, String>) context.getBean("systemProperties");
            String to = systemProperties.get("constantNZ.forex_cs_agent");
        } catch (Exception e) {
            logger.error("error", e);
            return "ERROR:" + e.getMessage();
        }

        return "OK";
    }


原文地址:https://www.cnblogs.com/shz365/p/5381968.html