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;
}
火锅鸡做法}
}
}
注:如果在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启动读取外部配置⽂件,只需要在外⾯加⼀层配置⽂件覆盖默认的即可,不⽤修改代码。
发布评论