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

2023-11-11

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Maven项目中读取src/main/resources目录下的配置文件 的相关文章

  • 常见的函数式接口介绍

    Supplier
  • 《14天从0到1学Java》第一天之07Java变量和常量

    这个是一套系列教程 一共14天 每天8篇 每篇需要5分钟 也就是说 你需要每天抽出40分钟来看教程 坚持14天就可以 轻松玩转JavaSE 我是Feri 我为自己代言 专注IT职场研发和教育N年 希望对于你的入门 有所帮助 本篇目录 一 常
  • 写一个手机类,属性:品牌brand,价格price 行为:打电话Call,发短信Message,打游戏Game 要用到this和Private的知识点

    初写手机类 这个程序是初步的程序 还有很多细节没补上 等到学到后面再逐渐完善了 class Demond Phone public static void main String args Phone p1 new Phone p1 set
  • 实现 后台需要显示订单信息,但是订单信息里面涉及到查询2张表 。本代码使用了MapListHandler

    Dao层的代码实现 Service层实现 Servlet层实现 Bean 实现效果 以上是图片展示 一下是部分代码展示 DAO部分 通过查出2个表的数据where u id o id的数据MapListHandler 然后再通过遍历MapL
  • 好用用的linux 监控命令

    1 dstat 命令 参考http www cnblogs com vincent hv p 3358194 html dstat的基本使用 2 1 dstat的默认选项 与许多命令一样 dstat命令有默认选项 执行dstat命令不加任何
  • (短信服务)java SpringBoot 阿里云短信功能实现发送手机验证码

    一 阿里云准备工作 1 阿里云短信服务 注册账号 阿里云官网 https www aliyun com 点击官网首页注册按钮 2 阿里云短信服务 设置短信签名 阿里云提供测试的签名 暂时可以跳过 注册成功后 点击登录按钮进行登录 登录后进入
  • (详细简单成功版本)Mysql主从复制

    博主不易 如果有帮助点个赞加个关注再走啊家人们 目录 介绍 配置 前置条件 大坑 如果两份mysql文件都是复制的一份 那么就修改其中一份的uuid 要不后续配置不成功 配置 主库Master 1 修改Mysql数据库的配置文件my ini
  • JAVA异常详解

    异常的定义 异常就是有异于常态 和正常情况不一样 有错误出现 在java中 阻止当前方法或作用域的情况 称之为异常 异常的分类 Error 是程序中无法处理的错误 表示运行应用程序中出现了严重的错误 此类错误一般表示代码运行时JVM出现问题
  • 【日志脱敏】Springboot集成日志框架脱敏实战

    针对日志打印而不能泄露用户隐私需求 需要利用相应日志框架实现脱敏 本文基于log4j logback 重写相应方法 匹配出正则并转换为脱敏后的日志 效果展示如下 name 李 idNumber 110106 226X mobile 130
  • Java 线程的生命周期(对应七大状态)

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 线程的生命周期 线程状态的转换 通过代码输出线程的状态 代码如下 public class ThreadState public sta
  • Integer.parseInt(s)与Integer.valueOf(s)的区别详解

    一 Integer parseInt s 用法 String s1 1000 String s2 1000 int n1 Integer parseInt s1 int n2 Integer parseInt s2 if n1 n2 Sys
  • SpringBoot整合数据库之如何整合JdbcTemplate?怎么配置JdbcTemplate多数据源(连接多个数据库)?

    1 整合JdbcTemplate 1 1 引入需要的pom依赖
  • Java 中常用的转义字符

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 Java中常用的转义字符 看如下代码 public class ChangeChar public static void main S
  • Java Jdbc的详解

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 一 Jdbc原理示意图 二 Jdbc的概述 三 JDBC的快速入门 代码如下 具体讲解在注释中已经说明 public class Jdb
  • springboot+cache缓存上

    cache内容 缓存的意义 将方法的运行结果进行缓存 以后再要相同的数据 直接从缓存中获取 不用调用方法 cacheManager管理多个Cache组件 对缓存的真正操作CRUD操作在Cache组件中 每一个缓存组件有自己唯一一个名字 几个
  • SpringBoot总结

    一 SpringBoot简介 1 入门案例 SpringMVC的HelloWord程序大家还记得吗 SpringBoot是由Pivotal团队提供的全新框架 其设计目的是用来简化Spring应用的初始搭建以及开发过程 原生开发SpringM
  • (简单成功版本)Mysql配置my.ini文件

    目录 一 背景 二 删除原有的mysql服务 三 初始化mysql 四 自行添加my ini文件 五 新建mysql服务 六 启动mysql服务 七 设置数据库密码 7 1 登录mysql数据库 7 2 修改root用户密码 八 配置my
  • Mybatis 查询出来的数据集合数量正确,但是具体数据为null

    目录 回顾场景 问题分析 解决方案 把对应的实体类字段名与数据库的保持一致 然后查询 回顾场景 确认sql语句没有问题 可以在数据库查询出来 3条数据 但是通过代码查询出来List集合 看到数量是对的 但是里面的数据全部为空null 问题分
  • Java 中j+=i 和 j=+i 的区别

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 一 j i 意思就是 把i获取到的值与j相加 之后再把值赋给j 更新j的值 换句话说 j j i 写下代码更好的理解一下 Test pu
  • (原理及配置)nginx配置负载均衡

    背景介绍 早期的网站流量和业务功能都比较简单 单台服务器就可以满足基本需求 但是随着互联网的发展 业务流量越来越大并且业务逻辑也越来越复杂 单台服务器的性能及单点故障问题就凸显出来了 因此需要多台服务器组成应用集群 进行性能的水平扩展以及避

随机推荐

  • 图解通信原理与案例分析-21:4G LTE多天线技术--天线端口、码流、分集Diveristy、波束赋形BF、空分复用MIMO、空分多址

    目录 前言 第1章 MIMO多天线技术概述 1 1 三大目的 1 2 六大分类 第2章 单天线SISO 单输入单输出 2 1 概述 2 2 实现原理 多路 异频 发送 接收 对 第3章 接收分集MISO 多输入单输出 冗余接收 3 1 概述
  • 受够了初级排序算法,今天来个效率高的——归并排序。

    受够了初级排序算法 今天来个效率高的 归并排序 前情回顾 在前几篇文章中我们学习了选择排序 插入排序 以及插入排序的优化版希尔排序 但是他们的时间复杂度都是O N 2 现在我们终于迎来了我们算法效率大幅度提升的 时间复杂度为O NlogN
  • 【vue】vue组件之间相互调用问题处理

    背景 最近再使用抽屉组件的时候 遇到一个棘手的问题 就是抽屉是座位详情功能使用的 这就会带来一个问题 可能在 用户详情抽屉 中需要调用 订单详情抽屉 而 订单详情抽屉 也可能调用 用户详情抽屉 简单来说过就是A组件调用B组件 B组件又调用A
  • 私有化部署即时通讯平台,完美替代飞书和钉钉的SaaS系统

    在当今快速发展的数字化时代 企业对于安全 灵活 可定制的即时通讯平台需求不断增长 作为一家领先的品牌 WorkPlus专注于提供私有化部署的即时通讯平台 完美替代飞书和钉钉的SaaS系统 本文将重点介绍WorkPlus如何通过创新的解决方案
  • iOS开发中的敏捷方法

    敏捷开发是现在比较流行的软件开发方法 因为方法决定效率 好的方法可以大大地提高开发效率 什么是敏捷 Agile 敏捷源于2001年美国犹他州雪鸟滑雪圣地的一次聚会 聚会是敏捷方法发起者和实践者的聚会 他们经过两天的讨论 通一份简明扼要的 敏
  • ExtJS Sencha CMD 打包异常报错分析处理 - 2

    今天使用 sencha app build testing 进行编译 然后运行的时候 出现错误 app js dc 1666874035180 81578 Uncaught TypeError t 1 is not a function a
  • yar框架的并行原理分析(libcurl+epoll)

    yar是一个轻量级的php rpc框架 有意思的是它的并行 其实就是libcurl作为网络库提供http请求 然后用epoll做为事件监听来实现整个异步并行调用的 在此基础上 就是如何利用zend api来对整个逻辑的封装了 我们先抛开ze
  • 平衡小车调试总结及心得

    目录 一 知识点 1 PID控制算法 2 平衡原理 二 硬件 1 编码器 2 电机 3 PWM 4 陀螺仪MPU6050 三 PID调节过程 1 理论部分 1 1直立环 1 2速度环 串级PID 1 3 纯比例控制 2 调参步骤 2 1大致
  • sql注入之万能密码总结

    sql注入之万能密码总结 万能密码 万能密码原理 万能密码 asp aspx万能密码 PHP万能密码 jsp 万能密码 万能密码 啊这 一般用来ctf登录的时候试试 这是sqli labs用的时候 我来记录一下 万能密码原理 原验证登陆语句
  • Python基础——函数的基本使用

    文章目录 一 定义 二 属性 三 操作 1 函数的参数 2 函数返回值 3 函数多个返回值 4 多个return语句 5 函数调用函数 6 函数的联系及注释 7 局部变量和全局变量 8 数据的传递 9 lambda表达式 一 定义 1 语法
  • 【TensorFlow】TensorFlow函数精讲之 tf.nn.relu()

    tf nn relu 函数是将大于0的数保持不变 小于0的数置为0 函数如图1所示 ReLU函数是常用的神经网络激活函数之一 图1 ReLU函数图像 下边为ReLU例子 import tensorflow as tf v tf consta
  • 自动控制原理与动态系统的建模与分析

    1 开环系统和闭环系统 反馈控制 1 1开环控制 开环控制系统是指无被控量反馈的系统 即在系统中控制信息的流动未形成闭合回路 1 2 闭环控制 有被控量反馈的控制 即系统的输出信号沿反馈通道又回到系统的输入端 构成闭合通道 也叫做反馈控制
  • go get国内解决办法汇总

    go作为Google大佬的亲儿子 go开发过程中除了SDK自带的包外还经常会需要用到大佬提供的其他包 这些包都在golang org下 而下载这些包需要访问大佬的服务器 国内开发者就会遇到各种的问题 今天就给大家总结一下有哪些途径安装这些包
  • Android Studio Flutter 开发配置

    近来比较闲 就研究下Flutter 开发 在此记录下studio 配置过程 时间是2023 7 19 在 Windows 操作系统上安装和配置 Flutter 开发环境 1 首先下载 Flutter SDKhttps storage flu
  • 基于51单片机水塔水箱液水位WIFI监控报警设计proteus仿真原理图PCB

    功能 0 本项目采用STC89C52作为单片机系统的控制MCU 1 WIFI实时上传当前水位状态 2 通过液位传感器检测液位 检测到最低液位和最高液位时 超过设定阈值将声光报警 3 通过状态指示灯显示当前液位情况 三种颜色 红色代表低于下限
  • python urllib下载文件怎么停止_python下载文件的三种方法

    Python开发中时长遇到要下载文件的情况 最常用的方法就是通过Http利用urllib或者urllib2模块 当然你也可以利用ftplib从ftp站点下载文件 此外Python还提供了另外一种方法requests 下面来看看三种方法是如何
  • unity利用高阶贝塞尔曲线进行的轨道移动

    之前想做一个按照固定的路线进行移动的demo 就想到了路径的曲线 然后就想到了贝塞尔曲线 先上贝塞尔通用公式 借鉴网上的代码和相应的函数公式 组成了一个demo 通用的贝塞尔曲线工具类 using System Collections us
  • elasticsearch基础6——head插件安装和web页面查询操作使用、ik分词器

    文章目录 一 基本了解 1 1 插件分类 1 2 插件管理命令 二 分析插件 2 1 es中的分析插件 2 1 1 官方核心分析插件 2 1 2 社区提供分析插件 2 2 API扩展插件 三 Head 插件 3 1 安装 3 2 web页面
  • Python 基础知识5 元组操作

    元组 与列表不同之处 1 使用 定义 2 定以后元组的元素不能修改 元组定义 只有一个元素时元素后加 号 否则为整型 tup1 hello world 120 123 tup2 1 5 4 2 3 tup3 a b c d tup4 pri
  • Maven项目中读取src/main/resources目录下的配置文件

    在Maven项目的开发中 当需要读取src 下的配置文件时 该怎么做 我们假设Resources下有一个文件名为kafka properties的配置文件 为什么用kafka properties 因为这是在做kafka项目的时候碰到的问题