JAR包读取jar包内部和外部的配置文件,springboot读取外部配置文件的方法(优先级配置)
JAR包读取jar包内部和外部的配置⽂件,springboot读取外部配置⽂件的⽅法(优先级配置)
jar包读取jar包内部和外部的配置⽂件,springboot读取外部配置⽂件的⽅法
⽤系统属性Property("user.dir")获得执⾏命令的⽬录(⽹上很多说是jar包的当前⽬录是错误的)
实例源码:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class TestConfigPath {
public static void main(String[] args) {
户外运动品牌排名String path = Property("user.dir");
System.out.println(path);
Properties properties = Properties("application.properties");
String activemqConnection = Property("tion");
System.out.println(activemqConnection);
}
public static Properties getProperties(String fileName) {中国格言
try {
String outpath = Property("user.dir")+File.separator+"config"+File.separator;//先读取config⽬录的,没有再加载classpath的
System.out.println(outpath);
Properties properties = new Properties();
InputStream in = new FileInputStream(new File(outpath + fileName));
properties.load(in);
return properties;
} catch (IOException e) {
System.out.Message());
try {
Properties properties = new Properties();
InputStream in = ClassLoader().getResourceAsStream(fileName);//默认加载classpath的
properties.load(in);
return properties;
} catch (IOException es) {
System.out.Message());
return null;
}
}诺基亚520怎么样
}
}
北京免费公园注:如果在docker⾥⾯运⾏在jar同⽬录下放config⽬录也是读取不到的,Dockerfile⾥需要加上⼀句:ADD config/ /config/亲爱的那并不是爱情
然后读出来的路径是://config/application.properties
/config/application.properties
/config/application.properties (No such file or directory)
docker config⾥⾯的配置⽂件优先级⽐jar包的⾼,会覆盖jar包⾥默认的配置,部署到其他服务器环境只需要修改对应配置就可以了Dockerfile配置⾥需要加上:ADD config/ /config/
springboot读取外部配置⽂件的⽅法,如下优先级:
第⼀种是在执⾏命令的⽬录下建config⽂件夹。(在jar包的同⼀⽬录下建config⽂件夹,执⾏命令需要在jar包⽬录下才⾏),然后把配置⽂件放到这个⽂件夹下。
第⼆种是直接把配置⽂件放到jar包的同级⽬录。
第三种在classpath下建⼀个config⽂件夹,然后把配置⽂件放进去。
免费领皮肤第四种是在classpath下直接放配置⽂件。
springboot默认是优先读取它本⾝同级⽬录下的⼀个config/application.properties ⽂件的。
在src/main/resources ⽂件夹下创建的application.properties ⽂件的优先级是最低的
所以springboot启动读取外部配置⽂件,只需要在外⾯加⼀层配置⽂件覆盖默认的即可,不⽤修改代码。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。