• .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,所以情境二在我个人的工作中使用最为频繁。

  • 相关阅读:
    General error: 1364 Field 'id' doesn't have a default value
    数据库 主键、外键和索引的区别
    宝塔升级
    服务器数据库性能调优
    关于TP5.1的跳转
    用PHP写九九乘法表
    Java中的接口
    Java中的继承
    超市库存管理系统
    Java中的封装
  • 原文地址:https://www.cnblogs.com/longying2008/p/6557067.html
Copyright © 2020-2023  润新知