Maven项目中读取src/main/resources目录下的配置文件的方法

 更新时间:2017年12月07日 11:45:44   作者:wws921104  
本篇文章主要介绍了Maven项目中读取src/main/resources目录下的配置文件的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

在Maven项目的开发中,当需要读取src/下的配置文件时,该怎么做?

我们假设Resources下有一个文件名为kafka.properties的配置文件(为什么用kafka.properties,因为这是在做kafka项目的时候碰到的问题,在网上查到了不少信息,索性当个搬运工,再根据自己的理解整理一下)

1.在java类中读取

若配置文件不在src/main/resources目录下,可以直接使用

Properties prop = new properties(); 
prop.load(new InputStream("kafka.properties")); 

当配置文件放在src/main/resources的目录下时,只能使用Class.getResourceAsStream()方法来加载

Properties prop = new properties(); 
prop.load(this.getClass().getResourceAsStream("/kafka.properties")); 

此时,getResourceAsStream(String name)方法中参数路径的写法:

1).若写成"kafka.properties",则是去当前类的class文件同一目录下找(但是显然在正常项目不会有人将配置文件放在这种位置)。

2).若写成"/kafka.properties",则是去整个项目的classes目录下去找,即target/classes

2.在spring框架的xml文件中读取

首先我们先随便写个配置文件kafka.properties

kafka.topic=topic 
serializer.class=kafka.serializer.StringEncoder 
key.serializer.class=kafka.serializer.StringEncoder 

以下就有两种方法来调用

1).首先可以在spring的bean中配置

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
<property name="locations"> 
<list> 
<span style="white-space:pre"> </span><value>/kafka.properties</value> 
</list> 
</property> 
</bean> 

这里还可以在list标签中配置多个value,这样就可以在bean中读取一个甚至多个配置文件。

<bean id="kafkaService" class="com.wws.service.impl.KafkaServiceImpl"> 
  <!-- <property name="topic"><value>topic</value></property> --> 
  <property name="topic"><value>${kafka.topic}</value></property> 
</bean> 

这样就可以在后面的bean中成功调用配置文件中的参数,以上被注释的那段property和被注释掉的那行是同样效果

2).或者也可以使用如下方法

<context:property-placeholder location="classpath:kafka.properties"/> 

直接在spring配置文件中配置context:property-placeholder,有多个配置文件可以用逗号隔开,例如

<context:property-placeholder location="classpath:kafka.properties,classpath:jdbc.properties"/> 

 调用的方法跟1).中一样,这里就不重复了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • java中redis增删查以及清理缓存的案例

    java中redis增删查以及清理缓存的案例

    这篇文章主要介绍了java中redis增删查以及清理缓存的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Spring-boot JMS 发送消息慢的解决方法

    Spring-boot JMS 发送消息慢的解决方法

    这篇文章主要为大家详细介绍了Spring-boot JMS 发送消息慢的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • Java使用@Autowired注解获取对象为null的几种情况及解决方法

    Java使用@Autowired注解获取对象为null的几种情况及解决方法

    这篇文章主要给大家介绍了使用@Autowired注解获取对象为null的几种情况以及 解决方法,文中有详细的代码示例讲解,具有一定的参考价值,需要的朋友可以参考下
    2023-09-09
  • 基于Java在netty中实现线程和CPU绑定

    基于Java在netty中实现线程和CPU绑定

    这篇文章主要介绍了基于Java在netty中实现线程和CPU绑定,文章围绕主题的相关内容展开详细介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-05-05
  • Eclipse引用XSD实现XML配置文件提示标签的方法

    Eclipse引用XSD实现XML配置文件提示标签的方法

    今天小编就为大家分享一篇关于Eclipse引用XSD实现XML配置文件提示标签的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • Java中的堆排序详解

    Java中的堆排序详解

    这篇文章主要介绍了Java中的堆排序详解,堆排序的重点,在于排序的方式,堆排序,就是以堆的形式去排序,毫无疑问,了解堆很重要,文中提供了图解与部分代码,需要的朋友可以参考下
    2023-08-08
  • SpringBoot的DeferredResult案例:DeferredResult的超时处理方式

    SpringBoot的DeferredResult案例:DeferredResult的超时处理方式

    这篇文章主要介绍了SpringBoot的DeferredResult案例:DeferredResult的超时处理方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 浅谈Java安全之C3P0链利用与分析

    浅谈Java安全之C3P0链利用与分析

    本文主要介绍了浅谈Java安全之C3P0链利用与分析,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • 详解java中List中set方法和add方法的区别

    详解java中List中set方法和add方法的区别

    本文主要介绍了详解java中List中set方法和add方法的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Java同步函数代码详解

    Java同步函数代码详解

    这篇文章主要介绍了Java线程中的同步函数的相关内容,涉及了实例代码,需要的朋友,可以参考下。
    2017-10-10

最新评论