使用spring工厂读取property配置文件示例代码

 更新时间:2018年01月10日 09:41:02   作者:yanweiqi  
这篇文章主要介绍了使用spring工厂读取property配置文件示例代码,具有一定借鉴价值,需要的朋友可以参考下

本文将介绍两种Spring读取property配置文件的方法,接下来看看具体内容。

一、通过Spring工厂读取

示例:

public class PropertyConfig {
	private static AbstractBeanFactory beanFactory = null;
	private static final Map<String,String> cache = new oncurrentHashMap<>();
	@Inject  
	  public PropertyConfig(AbstractBeanFactory beanFactory) {
		this.beanFactory = beanFactory;
	}
	/**   
   * 根据key获取配置文件的Value  
   * @param key   * @return   
   */
	public static String getProperty(String key) {
		String propValue = "";
		if(cache.containsKey(key)){
			propValue = cache.get(key);
		} else {
			try {
				propValue = beanFactory.resolveEmbeddedValue("${" + key.trim() + "}");
				cache.put(key,propValue);
			}
			catch (IllegalArgumentException ex) {
				ex.printStackTrace();
			}
		}
		return propValue;
	}
}

Spring xml的配置

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
  <property name="ignoreResourceNotFound" value="true"/>
  <property name="locations">
    <list>
      <value>classpath:props/${property-path}.properties</value>
      <value>classpath:important.properties</value>
    </list>
  </property>
</bean>

在项目中使用

String maxTimeInSecondsProp = PropertyConfig.getProperty("maxTimeInSeconds");

二、直接使用spirng程序代码读取项目的配置文件方法

import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PropertiesLoaderUtils;
import org.springframework.core.io.FileSystemResource;
 
public class Test {
  /**
   * @param args
   */
  public static void main( String[] args ) {
    String configFile = "D:/test/application.properties";
    //如果配置文件在classpath目录下可以使用ClassPathResource对象
    //Resource resource = new ClassPathResource("/application.properties");
    Resource resource = new FileSystemResource( configFile );
    try {
      Properties property = PropertiesLoaderUtils.loadProperties(resource);
      String driver = property.getProperty("jdbc.driver");
      String url = property.getProperty("jdbc.url");
      String userName = property.getProperty("jdbc.username");
      String password = property.getProperty("jdbc.password");
    }
    catch (IOException e1) {
      //log.error("read config file failed", e1);
    }
  }
}

如果配置文件在classpath目录下可以使用ClassPathResource对象

Resource resource = new ClassPathResource("/application.properties");

总结

以上就是本文关于使用spring工厂读取property配置文件示例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

相关文章

  • JVM内存飙升线上问题排查方式

    JVM内存飙升线上问题排查方式

    文章主要介绍了线上CMS服务内存增长问题的排查过程,通过分析GC日志和堆栈快照,定位问题为Nacos的NamingService对象无法回收和MySQL的CallableStatement对象增长迅速,最终通过将NamingService改为单例模式解决了内存增长问题
    2025-03-03
  • 使用Rhino让java执行javascript的方法实例

    使用Rhino让java执行javascript的方法实例

    这篇文章主要介绍了java使用Rhino执行javascript的方法,Rhino由Mozilla开发,是 JavaScript 一种基于Java的实现
    2013-12-12
  • 深入解析Spring AI框架如何在Java应用中实现智能化交互的关键

    深入解析Spring AI框架如何在Java应用中实现智能化交互的关键

    本文详细介绍了SpringAI框架在Java应用中的应用,包括实体类映射、函数回调等核心功能的实现,通过源码分析,帮助开发者更好地理解和使用这些高级特性,提升业务效率,感兴趣的朋友跟随小编一起看看吧
    2024-11-11
  • java中利用反射调用另一类的private方法的简单实例

    java中利用反射调用另一类的private方法的简单实例

    下面小编就为大家带来一篇java中利用反射调用另一类的private方法的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • Java获取堆栈信息的三种方法小结

    Java获取堆栈信息的三种方法小结

    在Java编程中,获取堆栈信息对于调试和故障排除非常重要,Java提供了多种方式来获取当前线程的堆栈信息,下面就跟随小编一起学习一下常用的三种吧
    2024-03-03
  • 浅谈Mybatis版本升级踩坑及背后原理分析

    浅谈Mybatis版本升级踩坑及背后原理分析

    这篇文章主要介绍了浅谈Mybatis版本升级踩坑及背后原理分析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • Spring过滤器中OncePerRequestFilter应用实现

    Spring过滤器中OncePerRequestFilter应用实现

    OncePerRequestFilter是Spring框架提供的一个过滤器基类,本文就来介绍一下Spring过滤器中OncePerRequestFilter应用实现,感兴趣的可以了解一下
    2024-12-12
  • 解读@Data注解父子类继承的问题

    解读@Data注解父子类继承的问题

    在Java开发中,使用Lombok库的@Data注解简化了代码,但在父子类继承关系中使用@Data注解时会遇到问题,主要问题是:当父类和子类都使用@Data注解时,会导致equals方法不对称,解决方案是在子类中使用@EqualsAndHashCode注解
    2024-11-11
  • SpringBoot详细探究讲解默认组件扫描

    SpringBoot详细探究讲解默认组件扫描

    在项目中我们创建了Controller,这个Controller是如何被spring自动加载的呢?为什么Controller必须放在启动类的同级目录下呢
    2022-06-06
  • Springboot创建时常用的依赖详解

    Springboot创建时常用的依赖详解

    本文介绍了Spring Boot项目中常用依赖的配置及作用,涵盖了父依赖、Web应用、测试、数据库、MyBatis、连接池、JSON处理、Lombok、AOP、校验、监控、工具包、打包配置、多配置文件以及热部署等
    2025-03-03

最新评论