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

  • 相关阅读:
    C#基础篇——泛型
    基于.NetCore3.1系列 —— 使用Swagger导出文档 (补充篇)
    基于.NetCore3.1系列 —— 使用Swagger导出文档 (番外篇)
    springboot深入浅出系列(16章97节)-看了都说好
    小书MybatisPlus第5篇-Active Record模式精讲
    小书MybatisPlus第4篇-表格分页与下拉分页查询
    使用位运算、值交换等方式反转java字符串-共四种方法
    有效提高java编程安全性的12条黄金法则
    小书MybatisPlus第3篇-自定义SQL
    结合SpEL使用@Value-基于配置文件或非配置的文件的值注入-Spring Boot
  • 原文地址:https://www.cnblogs.com/longying2008/p/6557067.html
Copyright © 2011-2022 走看看