基于Spring的Web工程读取配置文件的工具
PropertiesUtils.java
import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.Properties; public class PropertiesUtils { private static Map<String, String> map = new HashMap<>(); static { Properties props = ContextProvider.getBean("app", Properties.class); for (Entry item : props.entrySet()) { map.put((String) item.getKey(), (String) item.getValue()); } } private PropertiesUtils() { throw new IllegalStateException("Utility class"); } /*** * 根据key获取字符串 * @throws Exception */ public static String getString(String key) { return map.get(key); } /** * 根据key获取Integer */ public static Integer getInteger(String key) { String strTemp = getString(key); return Integer.parseInt(strTemp); } }
ContextProvider.java
import java.util.Collections; import java.util.Map; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Primary; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; import org.springframework.stereotype.Component; /** * 获取应用的 ApplicationContext 相关服务 */ @Primary @Lazy(false) @Order(Ordered.HIGHEST_PRECEDENCE) @Component public class ContextProvider implements ApplicationContextAware { private static ApplicationContext context; @Override public void setApplicationContext(ApplicationContext arg0) throws BeansException { if (null == context) { context = arg0; } } /** * 获取系统 ApplicationContext 对象 */ public static ApplicationContext getApplicationContext() { return context; } /** * 获取 Bean 实例 */ public static <T> T getBean(Class<T> clazz) { return context.getBean(clazz); } /** * 获取 Bean 实例 */ public static <T> T getBean(String name, Class<T> clazz) { return context.getBean(name, clazz); } }
applicationContext.xml
<?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/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:util="http://www.springframework.org/schema/util" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd" default-lazy-init="true"> <!-- 加载配置文件 --> <util:properties id="app" location="classpath:application.properties"/> <!-- Activates annotation-based bean configuration --> <context:annotation-config /> <!-- 对包中的类进行扫描,以完成 非Web 相关的 Bean 创建和自动注入 --> <context:component-scan base-package="com.biian"/> <aop:aspectj-autoproxy /> </beans>
application.properties
# 系统所在环境 system.env=TEST #pdf文件最大大小,单位:M pdf.file.max.size=2
这样,我们就可以直接用PropertiesUtils.getString("system.env");获得配置文件中的配置值。
posted on 2018-08-11 20:14 bijian1013 阅读(186) 评论(0) 收藏 举报
浙公网安备 33010602011771号