-
2021-03-14 16:11:15
我有一个标准的maven项目布局.
一些配置文件存储在src / main / conf中.
现在我想在src / test中的单元测试中读取这些文件(例如,从其中一个文件中读取属性).
我怎么能完全这样做?
解决方法:
您需要配置maven以将这些文件用作测试资源.
只需在pom.xml中指定它.比maven将处理与测试资源相同的配置文件.
...
src/test/resources
src/main/conf
...
此设置将强制maven在运行单元测试之前将配置文件复制到target / tests-classes.
然后你的单元测试将在类路径上有配置文件,你可以使用getClass().getResource(“/ yourConfigFile.conf”)来读取它们.
标签:java,unit-testing,maven
来源: https://codeday.me/bug/20190716/1482180.html
更多相关内容 -
15.简单读取 json 配置文件.pdf
2018-04-11 14:01:4515.简单读取 json 配置文件.pdf 15.简单读取 json 配置文件.pdf -
读取 获取配置文件的信息 Thymeleaf html/js获取配置文件
2020-01-15 13:40:16JAVA读取整个配置文件,装载到一个map resources——config——prop——map /*初始化加载aliPropertiesMap*/ public void init(Map, String> map) { try { //加载resource文件(也可以加载resources) Resource ...JAVA读取整个配置文件,装载到一个map
resources——config——prop——map
/*初始化加载aliPropertiesMap*/ public void init(Map<String, String> map) { try { //加载resource文件(也可以加载resources) Resource resources = new PathMatchingResourcePatternResolver().getResource("classpath:config/alipay.properties"); PropertiesFactoryBean config = new PropertiesFactoryBean(); config.setLocation(resources); config.afterPropertiesSet(); Properties prop = config.getObject(); //循环遍历所有得键值对并且存入集合 for (String key : prop.stringPropertyNames()) { map.put(key, (String) prop.get(key)); } System.out.println("加载完成"); } catch (Exception e) { new Exception("配置文件加载失败"); } }
一。控制器获取 再mmap.put传到前端
1.application.yml
area: 宁德市 diji: 县
2.控制器获取
@Value("${diji}") private String diji;
二。JS/Html读取
1.配置文件
2.js/html获取
[[#{area}]]
th:text = #{area}
th:value = #{area} -
IIS7.5提示无法写入配置文件web.config的解决方法
2020-09-30 16:00:08主要介绍了IIS7.5提示无法写入配置文件web.config的解决方法,需要的朋友可以参考下 -
thinkphp5 读取配置文件属性
2019-08-12 15:55:08配置文件优先等级 加载顺序: 惯例配置->应用配置->扩展配置->场景配置->模块配置->动配置态 优先级: 动配置态 > 模块配置 >场景配置 >扩展配置 >应用配置 >惯例配置 从右...配置文件优先等级
加载顺序:
惯例配置->应用配置->扩展配置->场景配置->模块配置->动配置态
优先级:
动配置态 > 模块配置 > 场景配置 > 扩展配置 > 应用配置 > 惯例配置
从右往左,右边配置文件 的配置会 覆盖 左边配置文件 的配置
一、惯例配置
路径:thinkphp/convention.php
一般情况下,不对惯例配置进行修改!
二、应用配置
路径:application/config.php
三、扩展配置(对配置文件分目录管理)
1、数据库配置
路径:application/database.php
2、自定义扩展配置
路径:extend目录下,新建配置项文件
四、场景配置(不同场景,读取不同的配置文件)
配置修改:
修改应用配置文件application/config.php中的app_status属性值,然后在config.php同级目录下,新建名为‘name1’的配置文件。该配置文件可以有多个,根据不同场景,赋予app_status不同的配置属性
// 应用模式状态 'app_status' => 'name1',
五、模块配置(不用模块读取不同配置文件)
根据应用模块的不同(如前台页面模块和后台管理系统模块),单独调用不同的配置文件。
例如,在application/index目录下,新建一个config.php文件,前台模块自动读取该配置文件内的配置参数;
同理。在application/admin目录下,新建一个config.php文件,后台模块自动读取该配置文件内的配置参数。
六、动态配置(临时性的配置)
通过config()等方法,在代码文件中,修改配置文件的某个属性的值:
config('name','newname');//修改配置文件的原属性的值
七、环境变量
创建:
在根目录下,创建 .env 文件(通过编辑器创建),书写规范(不能使用中文)
namme='zhangsan' age=12 //或者 [database] type='mysql' root='root'
调用:
通过Env类调用(可以在前面6个配置文件中,引入环境变量,通过修改环境变量,从而达到修改配置文件的效果)
use \think\Env ; //引入环境变量 // Env::get('name'); // Env::get('database.type'); //属性不存在 //Env::get('属性名称','不存在属性值'); // 数据库类型 'type' => Env::get('database.type'),
读取配置文件
在惯例配置文件中添加如下配置:
//自定义配置 //单个配置信息 'name' => 'zhangsan', 'age' => 30, //数组型配置信息 'teacher' => [ 'name' => 'xiaowang', 'age' => 29, ],
1、通过系统方法调取:
//单个配置属性 $conf = config('name'); //数组配置,返回数组 $conf = config('teacher'); //返回数组配置下的某一项属性 $conf = config('teacher.name');
2、通过系统类调用
//引用类 use \think\Config; //调用类方法 $conf = Config::get('age'); //数组配置,返回数组 $conf = Config::get('teacher'); //返回数组配置下的某一项属性 $conf = Config::get('teacher.name'); //或者直接调用类里面的方法 $conf = \think\Config::get('age'); //数组配置,返回数组 $conf = \think\Config::get('teacher'); //返回数组配置下的某一项属性 $conf = \think\Config::get('teacher.name');
3、调用扩展配置项
config('扩展文件名'.'属性'); config('扩展文件名');//该扩展配置的所有内容 config('database.hostname');//数据库扩展配置 config('自定义扩展配置名'.'属性');//自定义扩展配置
-
Shell脚本读取配置文件
2019-07-06 00:12:55Shell脚本读取配置文件 这里参考了下面这篇博客 https://blog.csdn.net/liubeck/article/details/7497156 不过按照上面的代码我的无法正确运行,又去查了半天才搞明白里面的问题。 配置文件为myconfig.ini ...Shell脚本读取配置文件
这里参考了下面这篇博客
https://blog.csdn.net/liubeck/article/details/7497156
不过按照上面的代码好像有点问题,后来搞了半天实现了需求。
配置文件为myconfig.ini[Class] ids=student1,student2,student3 files=profilefile [student1] name=LiLei age=16 [student2] name=HanMeiMei age=15 [student3] name=Lucy age=15
如何取[student1]下面name的值呢?用下面这行代码:
awk -F '=' '/\[student1\]/{a=1}a==1&&$1~/name/{print $2;exit}' myconfig.ini
这句指令涉及到的内容挺多的,查了半天才搞明白,详细解释一下:
-
首先这句指令用了awk命令,awk命令通常是将所列出的行,根据条件打印出某一列或几列,想多了解的话可以参考下网上资料
https://www.cnblogs.com/ftl1012/p/9250541.html -
“-F” 是awk命令的一个选项,用来指定后面记录(行)的分隔符号,就是确定用什么作为分隔符号把记录分成一个一个的域,这里后面跟的 ‘=’ 表示用等号来分隔。
-
再往后单引号中间是awk命令,awk命令由模式和动作组成,模式是一组用来测试输入行是否需要执行动作的规则,动作是包含语句、函数和表达式的执行过程,简单来说就是模式决定动作何时触发和触发事件,动作执行对输入行的处理。
-
/ \ [student1 \ ]/ 这就是上面说的awk命令的模式,模式与动作之间用 / 来分开,表示匹配到这个模式的话执行后面的动作,这里要匹配的是 [strudent1] ,因为方括号[ ] 在shell中有特殊的意义,使用转义符号\ 表示单纯的 [ ] 符号,所以这里就是[strudent1] 。
-
{a=1} 花括号里面的内容是awk命令的动作,这里就是给a赋值为1.
-
a==1&&$1~/name/ 这里又是一个模式匹配,先是判断a是否等于1(因为刚才已经给a赋值为1,所以这里肯定相等),还要$1~/name/,$1表示第一域,就是字符串用分隔符号分割后的第一段, ~ 符号在awk命令中是关系运算符号,表示匹配正则表达式,这里就是要第一域为name
-
{print $2;exit} 这里又是一个动作,打印第二域,即第一域name的取值,然后退出awk命令。
-
myconfig.ini 当然表示对 myconfig.ini 文件的操作。
这句话整体的含义就是: 对 myconfig.ini 文件进行操作,用=对每一行进行分割,找到匹配[student1]的section,再从 [student1] 下面找到name这一opiton,最后打印option的取值。
有了这句话,现在就可以使用shell脚本对 myconfig.ini 文件进行操作了:
configOperate.sh#!/bin/bash getconfig() { Section=$1 #传递的第一个参数 ConFile=$2 #传递的第二个参数 Options="name\tage\t" echo $Options|tr '\\t' '\t' for loop in $(echo $Options|tr '\\t' ' ') #tr替换命令 do #{gsub(/[[:blank:]]*/,"",$2)去除值两边的空格内容 awk -F '=' '/\['"$Section"'\]/{a=1}a==1&&$1~/'"$loop"'/{gsub(/[[:blank:]]*/,"",$2);printf("%s\t\t",$2) ;exit}' $ConFile done } #更改变量名称 CONFIGFILE=$1 #文件名称 echo -e "ConfigName:$CONFIGFILE \n" #取得ids中的每个id把,号分隔改成空格,因为循环内容要以空格分隔开来 profile=`sed -n '/ids/'p $CONFIGFILE | awk -F= '{print $2}' | sed 's/,/ /g'` #对于一个配置文件中的所有id循环 for stdudent in $profile do echo "--------------------------------------------------" echo "student:$stdudent" getconfig $stdudent $CONFIGFILE echo -e "\n" done
脚本的解释:
首先定义了getconfig()函数,用来将选定的section中的每个option以及取值打印出来。其中的$1、$2是调用函数时传递给它的第一个和第二个参数。下面两句
Options="name\tage\t" echo $Options|tr '\\t' '\t'
这两句是为了打印两个option :name和age
tr '\\t' '\t'
tr命令用于替换,这里是将 \t 这两个普通符号替换成了制表符号tab,注意\t的用法,因为\符号除了是一个普通符号之外还表示转义字符,所以用转义字符 \ 将它本身转化视作一个普通的符号。
这两句的结果是输出name age
下面一句
for loop in $(echo $Options|tr '\\t' ' ')
这句的意思就是循环中让loop分别取name和age
也可以这样写for loop in name age
但是不能用
for loop in `echo $Options|tr '\\t' ' '` # ` 执行符号
虽然在这句话中能实现的作用一样,但是放到整个脚本中却会有问题,不清楚为什么。
有了之前的解释,这一句
awk -F '=' '/\['"$Section"'\]/{a=1}a==1&&$1~/'"$loop"'/{gsub(/[[:blank:]]*/,"",$2);printf("%s\t\t",$2) ;exit}' $ConFile
就好理解了,不同之除就是如果用变量来代替student1…的话,格式是 ‘"$Section"’,先双引号,再单引号,gsub(/[[:blank:]]*/,"",$2) 去除值两边的空格内容,printf 是格式化输出。
以上是定义的getconfig函数。下面需要解释的是
profile=`sed -n '/ids/'p $CONFIGFILE | awk -F= '{print $2}' | sed 's/,/ /g'`
执行符号` 表示将里面命令运行的结果赋值给变量
sed -n '/ids/'p $CONFIGFILE
是sed命令的一种用法,表示读取文件中匹配ids的行,具体可以参考
https://www.cnblogs.com/ctaixw/p/5860221.htmlawk -F= '{print $2}'
用=将这一行分割,打印第二部分,即 student1,student2,student3
sed 's/,/ /g'
将逗号替换为空格
下面的内容相对简单, 主要是函数的调用方法为getconfig $stdudent $CONFIGFILE
最后的运行结果:
mk90@mk90-e420:~/Documents/myshell$ ./configOperate.sh myconfig.ini ConfigName:myconfig.ini -------------------------------------------------- student:student1 name age LiLei 16 -------------------------------------------------- student:student2 name age HanMeiMei 15 -------------------------------------------------- student:student3 name age Lucy 15
-
-
html页面a标签里的地址如何通过配置文件.propertie获取
2017-01-05 05:54:02html页面a标签里的地址如何通过配置文件.propertie获取 因为地址会变,不能写死,应该如何获取 -
如何在java代码中读取配置文件
2018-08-25 16:01:14在日常开发过程中,我们经常需要拼接一些字符串...那我们可不可以换一种方式呢,答案是肯定的,我们可以将这些常量配置到配置文件中去,然后需要这些常量的地方直接去配置文件中读取就行了,以后业务需求改变直接更... -
java 5种方式读取配置文件 + 修改配置文件
2019-03-01 18:11:02方式一:采用ServletContext读取,读取配置文件的realpath,然后通过文件流读取出来。 因为是用ServletContext读取文件路径,所以配置文件可以放入在web-info的classes目录中,也可以在应用层级及web-info的目录中。... -
10分钟搞定 SpringBoot 如何优雅读取配置文件?
2020-02-09 11:19:56本文以及收录自springboot-guide(不只是SpringBoot还有Spring重要知识点),地址:...很多时候我们需要将一些常用的配置信息比如阿里云 oss 配置、发送短信的相关信息配置等等放到配置文件中。 ... -
vue读取外部配置文件
2021-08-21 10:10:541.首先需要创建config.js,注意,文件需要最好放在static... 做完了配置操作之后,还需要在index.html中配置如下内容,这样可以做到配置文件的刷新操作: <script>document.write('<script src="./stati... -
C++读取配置文件的几种方法
2020-11-01 16:36:50看的你配置文件是什么类型了,如果是xml文件的话,可以用TinyXML解析器去解析,看这里:http://www.cnblogs.com/phinecos/archive/2008/03/11/1100912.html C++读写ini配置文件... -
C#中怎么读取配置文件
2019-07-05 15:45:441、配置文件的概述 应用程序配置文件是标准的 XML 文件。配置文件的根节点是configuration。我们经常访问的是appSettings,它是由.Net预定义的配置节。下面的“配置节”可以理解为进行配置一个XML的节点。 常见... -
C# 读取配置文件信息方法
2019-07-31 16:22:17配置文件App.config内容如下: <?xml version="1.0" encoding="utf-8" ?><configuration> <appSettings> <add key="SZHOOA01" value="weareMIS" /> <!--0不定时,直接执行一次.1按指定... -
Spring Boot Configuration 配置文件读取以及自定义配置文件
2018-08-21 10:44:03读取核心配置文件application.properties和application.yml 在application.properties下添加如下代码 test.name=test test.age=22 配置实体类: 第一种: @Component//使用@Configuration也... -
python3 读取配置文件
2019-05-08 22:59:40如何读取配置文件的信息: 结构: properties.conf [mysql] ip=192.168.1.102 user=root password=123 db=test [redis] ip=192.168.1.103 first.py读取配置信息: # coding:utf-8 import configparser ... -
java 读取ini配置文件
2019-06-24 08:43:56在maven项目中的pom.xml中配置: <dependency> <groupId>org.ini4j</groupId> <artifactId>ini4j</artifactId> <version>0.5.4</version> </dependency> env.i... -
Python 读取 yaml 配置文件内容
2022-04-11 18:57:49Python 读取 Yaml 文件示例 : # -*- coding: utf-8 -*- # @Time : 2022/4/11 18:49 # @Author : 王天赐 # @Email : 15565946702@163.com # @File : config.py # @Software: PyCharm import yaml # 参考 : ... -
shell 读取配置文件的方法
2019-05-24 08:12:10原文地址:https://www.cnblogs.com/binbinjx/p/5680214.html 转自一个bbs的问答。...配置文件config内容如下 ID=123 IP=192.168.3.154 Name=test 方法一,利用sed解析文本,提取配置信息 id=`sed... -
cpp 读取配置文件的几种方法
2018-05-22 16:10:48)windows下就直接用函数读取ini文件看的你配置文件是什么类型了,如果是xml文件的话,可以用TinyXML解析器去解析,看这里:http://www.cnblogs.com/phinecos/archive/2008/03/11/1100912.htmlC++读写ini配置文件ht..... -
jsp、html读取properties文件中的配置
2018-09-05 17:30:47引入jquery.i18n.properties-min.js ... ...// 加载properties文件 ...// properties文件名称 ...// properties文件路径 ...//其中isp_index为properties文件中需要查找到的数据的key值 } }); } -
java 4种方式读取配置文件 + 修改配置文件
2016-04-12 17:41:46方式一:采用ServletContext读取,读取配置文件的realpath,然后通过文件流读取出来。 因为是用ServletContext读取文件路径,所以配置文件可以放入在web-info的classes目录中,也可以在应用层级及web-info的目录中... -
SpringBoot读取外部配置文件的方法
2020-06-02 23:32:59点击上方「蓝字」关注我们1.SpringBoot配置文件SpringBoot使用一个以application命名的配置文件作为默认的全局配置文件。支持properties后缀结尾的配置文... -
SpringBoot读取配置文件的优先级
2019-09-23 12:58:461、springboot读取配置文件优先级 优先级如下 1. 第一种是在执行命令的目录下建config文件夹,然后把配置文件放到这个文件夹下。(在jar包的同一个目录下建config文件夹,执行命令需要在jar包所在目录下才行)2. 第... -
Java项目读取resources下的配置文件
2019-08-13 22:30:28java项目 ...Spring项目 https://www.cnblogs.com/haorui/p/9177993.html 参考 java读取resources下的配置文件+文件相对路径小结 读取spring工程中resource的文件 ... -
vue使用配置文件读取基地址
2020-07-22 10:56:26所以这边可以使用配置文件的形式,进行基地址等配置操作。 这里,首先需要创建config.js,注意,文件需要最好放在static目录下,这样配置文件回味与打出来的dist包的最外层,方便二次配置操作。 其次,编辑... -
解决Java Web项目无法读取配置文件问题
2019-10-13 10:40:46Web应用后台在读取配置文件的时候,系统找不到指定的路径。 这是 Java Web项目 的目录结构: 这是报错部分的代码: static { try { Properties prop = new Properties ( ) ; //读取配置... -
django数据库本地配置/python读取本地配置文件
2017-10-14 12:04:40首先创建一个本地文件config.ini,是.ini格式的配置文件,值不用加引号,读取过去就是字符串格式 文件内容: [global] ip = xxx port = xxx table = xxx uname = xxx passwd = xxx 读取本地配置文件用了个django...