zoukankan      html  css  js  c++  java
  • Spring MVC框架下在java代码中访问applicationContext.xml文件中配置的文件(可以用于读取配置文件内容)

    <bean id="propertyConfigurer" class="com.****.framework.core.SpringPropertiesUtil"
            lazy-init="false">
            <property name="locations">
                <list>
                    <value>classpath:config/sys.properties</value>
                </list>
            </property>
        </bean>

    applicationContext.xml文件中配置好sys.properties文件的路径 ↑↑↑↑

    然后是springPropertiesUtil文件内容:

    package com.****.framework.core;
    
    import org.apache.commons.lang3.StringUtils;
    import org.springframework.beans.BeansException;
    import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
    import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
    
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Properties;
    
    public class SpringPropertiesUtil extends PropertyPlaceholderConfigurer {
    
        private static Map<String, String> propertiesMap;
        // Default as in PropertyPlaceholderConfigurer
        private int springSystemPropertiesMode = SYSTEM_PROPERTIES_MODE_FALLBACK;
    
        @Override
        public void setSystemPropertiesMode(int systemPropertiesMode) {
            super.setSystemPropertiesMode(systemPropertiesMode);
            springSystemPropertiesMode = systemPropertiesMode;
        }
    
        @Override
        protected void processProperties(ConfigurableListableBeanFactory beanFactory, Properties props) throws BeansException {
            super.processProperties(beanFactory, props);
    
            propertiesMap = new HashMap<String, String>();
            for (Object key : props.keySet()) {
                String keyStr = key.toString();
                String valueStr = resolvePlaceholder(keyStr, props, springSystemPropertiesMode);
                propertiesMap.put(keyStr, valueStr);
            }
        }
        public static String getProperty(String name) {
            return propertiesMap.get(name).toString();
        }
        
        public static String getProperty(String name,String def) {
            String ret = propertiesMap.get(name);
            if(StringUtils.isBlank(ret)){
                return def;
            }
            return ret.toString();
        }
    
    }

    第三步是正题:在java代码中调用这个配置:

     SpringPropertiesUtil springPropertiesUtil = (SpringPropertiesUtil) applicationContext.getBean("propertyConfigurer");
                return springPropertiesUtil.getProperty(key);
  • 相关阅读:
    LVS+Heartbeat 高可用集群方案操作记录
    Haproxy和Nginx负载均衡测试效果对比记录
    Haproxy+Keepalived高可用环境部署梳理(主主和主从模式)
    Haproxy 重定向跳转设置
    Haproxy+Heartbeat 高可用集群方案操作记录
    haproxy反向代理环境部署(http和https代理)
    Linux下对lvm逻辑卷分区大小的调整(针对xfs和ext4不同文件系统)
    LVM基础详细说明及动态扩容lvm逻辑卷的操作记录
    Apache运维中常用功能配置笔记梳理
    LVS负载均衡-基础知识梳理
  • 原文地址:https://www.cnblogs.com/ning-blogs/p/4892002.html
Copyright © 2011-2022 走看看