zoukankan      html  css  js  c++  java
  • .properties 配置文件读取

    .properties 配置文件读取

    情境一:JAVA 读取 .properties 配置

    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Properties;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    /**
     * 属性文件工具类
     */
    public final class PropsUtils {
    
        private static final Logger LOGGER = LoggerFactory.getLogger(PropsUtil.class);
        
        /**
         * 加载属性文件
         */
        public static Properties loadProps(String fileName) {
            Properties props = null;
            InputStream is = null;
            try {
                is = Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName);
                if (is == null) {
                    throw new FileNotFoundException(fileName + " file is not found");
                }
                props = new Properties();
                props.load(is);
            } catch (IOException e) {
                LOGGER.error("load properties file failure", e);
            } finally {
                if (is != null) {
                    try {
                        is.close();
                    } catch (IOException e) {
                        LOGGER.error("close input stream failure", e);
                    }
                }
            }
            return props;
        }
    
        /**
         * 获取字符型属性(默认值为空字符串)
         */
        public static String getString(Properties props, String key) {
            return getString(props, key, "");
        }
    
        /**
         * 获取字符型属性(可指定默认值)
         */
        public static String getString(Properties props, String key, String defaultValue) {
            String value = defaultValue;
            if (props.containsKey(key)) {
                value = props.getProperty(key);
            }
            return value;
        }
    
        /**
         * 获取数值型属性(默认值为 0)
         */
        public static int getInt(Properties props, String key) {
            return getInt(props, key, 0);
        }
    
        /**
         * 获取数值型属性(可指定默认值)
         */
        public static int getInt(Properties props, String key, int defaultValue) {
            int value = defaultValue;
            if (props.containsKey(key)) {
                value = CastUtil.castInt(props.getProperty(key));
            }
            return value;
        }
    
        /**
         * 获取布尔型属性(默认值为 false)
         */
        public static boolean getBoolean(Properties props, String key) {
            return getBoolean(props, key, false);
        }
    
        /**
         * 获取布尔型属性(可指定默认值)
         */
        public static boolean getBoolean(Properties props, String key, boolean defaultValue) {
            boolean value = defaultValue;
            if (props.containsKey(key)) {
                value = CastUtil.castBoolean(props.getProperty(key));
            }
            return value;
        }
    }
    
    

    情境二:在 Spring MVC 配置文件 dispatcher-servlet.xml 文件中读取 .properties 配置文件

    <!-- 加载配置文件 -->
    <context:property-placeholder location="classpath:config.properties" />
    <!-- 读取配置文件 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="${web.view.prefix}" />
        <property name="suffix" value="${web.view.suffix}" />
    </bean>
    

    情境三:使用 Spring MVC 注解@Value在项目启动时自动注入属性值

    情境四:在 JSP 文件中通过自定义 tld 读取配置文件属性值

    后记

    在实际工作中,.properties 配置文件的使用情境,我个人就只能想到上面4种情境。其中,因为我们几乎所有的项目都会使用 Spring MVC,所以情境二在我个人的工作中使用最为频繁。

  • 相关阅读:
    beautiful number 数位DP codeforces 55D
    最长上升子序列
    0-1背包 codeforces 55 D
    概率DP HDU 4586 play the dice
    水题 不要62 HDU 2089
    抓老鼠 codeForce 148D
    ZOJ 3551 吸血鬼 概率DP
    poj 2151 Check the difficulty of problems 概率DP
    HDU 4681 string 求最长公共子序列的简单DP+暴力枚举
    HDU 1814 模板题 2-sat
  • 原文地址:https://www.cnblogs.com/longying2008/p/6557067.html
Copyright © 2011-2022 走看看