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

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

时间: 2017-12-06

Maven 安装目录的详细介绍

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

Maven构建生命周期详细介绍

什么是构建生命周期 构建生命周期是一组阶段的序列(sequence of phases),这些构建生命周期中的每一个由构建阶段的不同列表定义,其中构建阶段表示生命周期中的阶段. 例如,默认(default)的生命周期包括以下阶段(注意:这里是简化的阶段,用于生命周期阶段的完整列表): 验证(validate) - 验证项目是否正确,所有必要的信息可用 编译(compile) - 编译项目的源代码 测试(test) - 使用合适的单元测试框架测试编译的源代码.这些测试不应该要求代码被打包或部署 打

maven中pom.xml详细介绍

POM 代表工程对象模型.它是使用 Maven 工作时的基本组建,是一个 xml 文件.它被放在工程根目录下,文件命名为 pom.xml. POM 包含了关于工程和各种配置细节的信息,Maven 使用这些信息构建工程. POM 也包含了目标和插件.当执行一个任务或者目标时,Maven 会查找当前目录下的 POM,从其中读取所需要的配置信息,然后执行目标.能够在 POM 中设置的一些配置如下: project dependencies plugins goals build profiles pr

CentOS7下安装Scrapy步骤详细介绍

CentOS7下安装Scrapy步骤详细介绍 更新yum [root@localhost ~]# yum -y update 安装gcc及扩展包 [root@localhost ~]# yum install gcc libffi-devel python-devel openssl-devel 安装开发工具包 [root@localhost ~]# yum groupinstall -y development 安装libxslt-devel支持lxml [root@localhost ~]#

Tomcat目录结构详细介绍

打开tomcat的解压之后的目录可以看到如下的目录结构: 1.Tomcat的bin目录: bin目录主要是用来存放tomcat的命令,主要有两大类,一类是以.sh结尾的(linux命令),另一类是以.bat结尾的(windows命令). 很多环境变量的设置都在此处,例如可以设置JDK路径.tomcat路径 startup 用来启动tomcat shutdown 用来关闭tomcat 修改catalina可以设置tomcat的内存 2.Tomcat的conf目录: conf目录主要是用来存放tom

Linux 安装nginx服务器详细介绍

nginx依赖一些软件库,在安装之前请确保系统安装了gcc.ssl.pcre和gzip等软件,可以用rpm -q 命令查看软件是否安装. [root@RedHat1 ~]# rpm -q gcc gcc-4.1.2-44.el5 依赖库信息如下: (1). gzip 模块需要 zlib 库 ( 下载: http://www.zlib.net/ ) (2). rewrite 模块需要 pcre 库 ( 下载: http://www.pcre.org/) (3). ssl 功能需要 openssl

Linux ProFTPd安装与卸载详细介绍

Linux系统上ProFTPd安装与卸载的详细过程 yum install proftpd vi /etc/proftpd.conf ← 修改ProFTPD的配置文件 ServerType standalone ← 找到这一行,在行首添加"#" ↓ #ServerType standalone ← 变为此状态,不使用常驻模式 #ServerType inetd ← 找到这一行,去掉行首的"#" ↓ ServerType inetd ← 变为此状态,通过超级服务器来启

Yarn的安装与使用详细介绍

在官方介绍里有这么一句话: Yarn is a package manager for your code. It allows you to use and share code with other developers from around the world. Yarn does this quickly, securely, and reliably so you don't ever have to worry. 关键意思就是,快速,安全,可靠.你下载的包将不再重新下载.而且确保在

Linux 和Windows 安装Git 步骤详细介绍

Linux 安装Git 在 Linux 上安装 如果你想在 Linux 上用二进制安装程序来安装 Git,可以使用发行版包含的基础软件包管理工具来安装. 如果以 Fedora 上为例,你可以使用 yum: $ sudo yum install git 如果你在基于 Debian 的发行版上,请尝试用 apt-get: $ sudo apt-get install git 要了解更多选择,Git 官方网站上有在各种 Unix 风格的系统上安装步骤,网址为 http://git-scm.com/do

python cx_Oracle模块的安装和使用详细介绍

python cx_Oracle模块的安装 最近需要写一个数据迁移脚本,将单一Oracle中的数据迁移到MySQL Sharding集群,在linux下安装cx_Oracle感觉还是有一点麻烦的,整理一下,做个总结. 对于Oracle客户端,不只需要安装相应的python模块(这里我用了Oracle官方的python模块--cx_Oracle),还需要安装Oracle Client,一般选择Instant Client就足够了,还需要配置tnsnames.ora(当然也可以简单的通过host:p