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).中一样,这里就不重复了

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

(0)

相关推荐

  • Maven 安装目录的详细介绍

    Maven 安装目录的详细介绍 前言: Maven 作为一款优秀的构建工具.依赖管理工具和项目管理工具,已经被业界广泛应用,我们可以利用 Maven 对项目进行清理.测试.构建.打包.部署等操作.在此,我们就 Maven 的安装目录,进行解读. 正文 从 Apache Maven 官网下载 Maven 的安装包并解压之后,进入安装目录,我们会看到如下内容: bin boot conf lib LICENSE.txt NOTICE.txt README.txt 接下来,分别解读以上目录的内容及功能

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

    在Maven项目的开发中,当需要读取src/下的配置文件时,该怎么做? 我们假设Resources下有一个文件名为kafka.properties的配置文件(为什么用kafka.properties,因为这是在做kafka项目的时候碰到的问题,在网上查到了不少信息,索性当个搬运工,再根据自己的理解整理一下) 1.在java类中读取 若配置文件不在src/main/resources目录下,可以直接使用 Properties prop = new properties(); prop.load(n

  • 解决@springboottest注解无法加载src/main/resources目录下文件

    目录 结论 环境及问题描述 问题分析 1.首先com.xx.xxx.service.SsoService该类存在 2.再看下pom文件的配置 3.这个类是在src/main/resources目录下的资源文件里配置 Springboot微服务框架是目前越来越流行的框架,省去了很多繁琐的xml配置.最近新启了个项目,采用SpringBoot框架从头搭建,中间也遇到过各种坑,现在先描述一下 Junit4单元测试之坑吧. 结论 @SpringBootTest注解,只会加载test路径下的资源文件(即x

  • 项目打包成jar后包无法读取src/main/resources下文件的解决

    目录 一.项目场景 二.问题描述 发现问题 分析问题 为什么使用 ClassPathResource 后, 可以找到打包后的文件路径? 三.解决方案 方案一 方案二 意外出现 总结 一.项目场景 在项目中读取文件时, 使用new File() 出现的一个坑以及解决流程这种问题不仅在本地文件读取时会遇到, 而且在下载项目下 (例如: src/main/resources目录下) 的文本时, 也会遇到, 二.问题描述 发现问题 原来代码该代码功能是利用 common.io 包下的FileUtils来

  • Maven项src/main/java目录下配置文件无法被导出或者生效的问题和处理方案

    问题展示 原因剖析 处理方案 第一种:调整配置文件的位置(建议) 第二种:在pom.xml文件中配置 问题展示 今天试着大了maven+mybatis,以下是我的目录结构,我的xml文件是放在java文件夹下的 mappers 标签配置了需要加载的 Dept的sql映射配置文件DeptMapper.xml. 其单元测试访问的时候,报了一个错 找不到DeptMapper.xml文件 再看编译后的文件,竟然没有我们的DeptMapper.xml文件 我试着把DeptMapper.xml文件放到res

  • maven项目无法读取到resource文件夹的问题

    目录 maven项目无法读取到resource文件夹 resource文件夹下部分文件无法读取 maven项目无法读取到resource文件夹 使用idea moudle创建一个maven项目删除后出现,原有的maven项目里运行时报错查看错误代码后发现只要是resource文件夹下的东西都是找不到的. 排查后发现由于之前的创建pom.xml文件里的packaging被修改成了pom,改成war就恢复正常了. 具是什么原因引起的,由于刚开始学习不是很懂,无法说明. resource文件夹下部分文

  • 解读classpath读取resources目录下的文件

    目录 classpath读取resources目录下文件 1.class.getResource() 2.getClassLoader().getResource() 4.批量读取 5.如果配置文件中要引用这个文件的路径呢? 总结 classpath读取resources目录下文件 最近在springboot+maven的项目中去读取资源文件的时候,报了找不到文件的错误. 由此展开了对maven项目编译前和编译后的目录结构的了解,以及对java的classpath的理解. 首先: 由Maven构

  • 解决IDEA的maven项目中没有新建Servlet文件的选项问题

    问题:右键package新建却没有servlet的选项 原因:项目设置里面没有勾选Source Roots 解决办法: Step1. Step2 到此这篇关于IDEA的maven项目中没有新建Servlet文件的选项问题及解决方法的文章就介绍到这了,更多相关IDEA maven项目没有新建Servlet文件的选项内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

  • SpringBoot如何获取src/main/resource路径下的文件

    目录 SpringBoot获取src/main/resource路径下的文件 SpringBoot打成jar包后,读取resources目录下的文件 一般方法 正确方法 SpringBoot获取src/main/resource路径下的文件 下面的ResourceUtils使用spring-core的工具包,在org.springframework.util包下 File file = ResourceUtils.getFile(ResourceUtils.CLASSPATH_URL_PREFI

  • 解决IDEA2020 创建maven项目没有src/main/java目录和webapp目录问题

    参考链接 IDEA 2020.2.3版本 IntelliJ IDEA 2020.2.3永久激活码(亲测有效) IDEA 2019.3版本 IntelliJ IDEA 2020最新激活码(亲测有效,可激活至 2089 年) IntelliJ IDEA 2018.3.3版本 最新idea2020注册码永久激活(激活到2100年) 问题描述 在IDEA中创建maven项目时,发现没有src/main/java目录和webapp目录 问题解决 红色框里一开始是默认的maven地址,如果本身默认地址里并没

  • Maven项目中resources配置总结

    背景 通常Maven项目的文件目录结构如下: # Maven项目的标准目录结构 src main java #源文件 resources #资源文件 filters #资源过滤文件 config #配置文件 scripts #脚本文件 webapp #web应用文件 test java #测试源文件 resources #测试资源文件 filters #测试资源过滤文件 it #集成测试 assembly #assembly descriptors site #Site target gener

随机推荐