读取文件参数配置工具类ConfigUtil

 静态注入文件方法:

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 加载配置文件config_params.properties
 * 
 * @author leopard
 */
public class ConfigUtil {

    private static final Logger logger = LoggerFactory.getLogger(ConfigUtil.class);

    private static Properties props;
    static {
        loadProps();
    }

    /**
     * 加载配置文件
     * 
     * @author leopard
     */
    synchronized static private void loadProps() {
        logger.info("开始加载config_params.properties文件内容.......");
        props = new Properties();
        InputStream in = null;
        try {
            // 
            in = ConfigUtil.class.getClassLoader().getResourceAsStream("config_params.properties");
            // 
            // in = ConfigUtil.class.getResourceAsStream("/jdbc.properties");
            props.load(in);
        } catch (FileNotFoundException e) {
            logger.error("config_util.properties文件未找到");
        } catch (IOException e) {
            logger.error("出现IOException");
        } finally {
            try {
                if (null != in) {
                    in.close();
                }
            } catch (IOException e) {
                logger.error("config_util.properties文件流关闭出现异常");
            }
        }
        logger.info("加载properties文件内容完成...........");
        logger.info("properties文件内容:" + props);
    }

    /**
     * 获取参数值
     * 
     * @param key
     *            键名
     * @return
     */
    public static String getProperty(String key) {
        if (null == props) {
            loadProps();
        }
        return props.getProperty(key);
    }

    /**
     * 获取参数值(不存在获取自定义默认值)
     * 
     * @param key
     *            键名
     * @param defaultValue
     *            自定义默认值
     * @return
     */
    public static String getProperty(String key, String defaultValue) {
        if (null == props) {
            loadProps();
        }
        return props.getProperty(key, defaultValue);
    }

    /**
     * 重新设置保存参数
     * 
     * @param key
     *            键名
     * @param Value
     *            键值
     * @return
     */
    public static Object setProperty(String key, String Value) {
        if (null == props) {
            loadProps();
        }
        return props.setProperty(key, Value);
    }
    
    public static void main(String[] args) {
        String str = ConfigUtil.getProperty("name");
        System.out.println(str);
    }

}

动态文件注入:

@Service
public class ConfigUtil {


	@Value("config_params.properties")
	private ClassPathResource resource;

	private static final Logger logger = LoggerFactory.getLogger(ConfigUtil .class);

	@PostConstruct
	public void init() {
		Properties properties = null;
		try {
			InputStream in = resource.getInputStream();
			properties = new Properties();
			properties.load(in);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

    ....下同。。。。
}

 

你可能感兴趣的:(java)