获取Spring项目配置文件元素

在开发中有时候要获取配置文件里的值,通常可以利用如下方式来读取:

public class PropertyUtil {

    private static Properties p = new Properties();

    static {
        init("config.properties");
    }

    /**
     * read config file and set vlaue to Properties p
     * @param propertyFileName 文件名
     */
    protected static void init(String propertyFileName)
    {
        InputStream in = null;
        try {
            in = PropertyUtil.class.getClassLoader().getResourceAsStream(propertyFileName);
            if (in != null){
                p.load(in);
            }
        } catch (IOException e){
            System.err.println("load ["+propertyFileName+"] error!"+e.getMessage());
        } finally {
            IOUtils.closeQuietly(in);
        }
    }

    public static String getValue(String key)
    {
        String value = null;
        try {
            value = p.getProperty(key);
        } catch (Exception e) {
            //
        }
        return value;
    }
}

下面推荐一个利用PropertyPlaceholderConfigurer来获取配置文件元素的方法:

package com.spring.common.util;

import java.util.HashMap;
import java.util.Map;import java.util.Properties;

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;

public final class PropertiesUtil extends PropertyPlaceholderConfigurer {

    private static Map<String, String> PropertiesMap;
    private static Properties properties = new Properties();

    @Override
    protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess,
            Properties props) throws BeansException {
        super.processProperties(beanFactoryToProcess, props);
        properties.putAll(props);
        PropertiesMap = new HashMap<String, String>();
        for (Object key : props.keySet()) {
            String keyStr = (String) key;
            String value = props.getProperty(keyStr);
            PropertiesMap.put(keyStr, value);
        }
    }

    /**
     * Get a value based on key , if key does not exist , null is returned
     * @param key
     * @return
     */
    public static String getString(String key) {
        try {
            return PropertiesMap.get(key);
        } catch (Exception e) {
            return null;
        }
    }

    /**
     * 根据key获取值
     *
     * @param key
     * @return
     */
    public static int getInt(String key) {
        return Integer.parseInt(PropertiesMap.get(key));
    }

    /**
     * 根据key获取值
     *
     * @param key
     * @param defaultValue
     * @return
     */
    public static int getInt(String key, int defaultValue) {
        String value = PropertiesMap.get(key);
        if (StringUtils.isBlank(value)) {
            return defaultValue;
        }
        return Integer.parseInt(value);
    }

    public static boolean getBoolean(String key) {
        return getBoolean(key, false);
    }

    /**
     * 根据key获取值
     * @param key
     * @param defaultValue
     * @return
     */
    public static boolean getBoolean(String key, boolean defaultValue) {
        String value = PropertiesMap.get(key);
        if (StringUtils.isBlank(value)) {
            return defaultValue;
        }
        return Boolean.parseBoolean(value);
    }

}

需要在spring.xml文件里引入一下配置文件,注意类名全路径不要写错:

    <!-- 引入属性配置文件 -->
    <bean class="com.spring.common.util.PropertiesUtil">
        <property name="locations">
            <list>
                <value>classpath:config.properties</value>
                <value>classpath:jdbc.properties</value>
            </list>
        </property>
    </bean>

在需要的地方调用下getString方法:

String  password = PropertiesUtil.getString("password");
时间: 2024-10-13 20:28:55

获取Spring项目配置文件元素的相关文章

监听器如何获取Spring配置文件(加载生成Spring容器)

Spring容器是生成Bean的工厂,我们在做项目的时候,会用到监听器去获取spring的配置文件,然后从中拿出我们需要的bean出来,比如做网站首页,假设商品的后台业务逻辑都做好了,我们需要创建一个监听器,在项目启动时将首页的数据查询出来放到application里,即在监听器里调用后台商品业务逻辑的方法,也就是说我们需要在监听器里获取Spring中配置的相应的bean.先把监听器创建出来: 1. 创建InitDataListener 创建一个监听器InitDataListener继承Serv

监听器如何获取Spring配置文件

我们在做项目的时候,会用到监听器去获取spring的配置文件,然后从中拿出我们需要的bean出来,比如做网站首页,假设商品的后台业务逻辑都做好了,我们需要创建一个监听器,在项目启动时将首页的数据查询出来放到application里,即在监听器里调用后台商品业务逻辑的方法,也就是说我们需要在监听器里获取Spring中配置的相应的bean.先把监听器创建出来: 1. 创建InitDataListener 创建一个监听器InitDataListener继承ServletContextListener:

Spring项目的配置文件们(web.xml context servlet springmvc)

我们的spring项目目前用到的配置文件包括1--web.xml文件,这是java的web项目的配置文件.我理解它是servlet的配置文件,也就是说,与spring无关.即使你开发的是一个纯粹jsp页面的web项目,你也必须配置这个文件.我们的java web项目肯定写了很多servlet代码,这些servlet需要运行在servlet容器中,这个容器就是tomcat的重要组件.也就是,你的web项目需要运行在tomcat中,那么你必须提供一个web.xml文件作为配置文件.在这个文件中,通过

Spring配置文件元素&lt;context:property-placeholder location=&quot;classpath:application.properties&quot; /&gt;

<context:property-placeholder location="classpath*:*.properties" ignore-unresolvable="true"/> 1.有些参数在某些阶段中是常量 比如:a.在开发阶段我们连接数据库时的连接url,username,password,driverClass等 b.分布式应用中client端访问server端所用的server地址,port,service等 c.配置文件的位置 2.而

maven Spring获取不到配置文件

如题: 如果在maven项目中,Spring获取不到配置文件, 把配置文件放到.src/main/resource文件夹下即可 import org.springframework.context.support.ClassPathXmlApplicationContext; //import com.travelsky.logic.insurance.dto.InsTravelerInfo; public class InsureTest {// List<InsTravelerInfo>

使用maven给spring项目打可直接运行的jar包(配置文件内置外置的打法)

从网上看过许多打jar包的例子,大多是将配置文件打进jar包的.经过本人一番研究,终于搞清楚了怎样将jar包的配置文件外置. 废话不说,直接上spring的pom.xml的配置文件. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mav

SSH框架系列:Spring读取配置文件以及获取Spring注入的Bean

分类: [java]2013-12-09 16:29 1020人阅读 评论(0) 收藏 举报 1.简介 在SSH框架下,假设我们将配置文件放在项目的src/datasource.properties路径下,Spring的配置文件也是src/applicationContext.xml路径下,那么我们可以借助Spring的property-placeholder读取配置文件,然后注入Bean中.我们在程序中,可以根据Bean的Id,获取注入的值.这样我们就可以借助Spring来读取配置文件. 2.

在spring项目中,普通类注入获取Bean,实现ApplicationContextAware接口

在平时spring项目中,某个不能注入Bean的项目中要获取Bean. @Component public class SpringUtil implements ApplicationContextAware { private static ApplicationContext applicationContext = null; public SpringUtil() { } public void setApplicationContext(ApplicationContext arg0

Spring的配置文件 (SSM maven项目)

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/sch