springboot支持外部的配置文件加载,常见的有如下几种,且优先级由高到低,还是互补配置
1.命令行参数
我们先把我们的项目打包
在pom文件中添加入下
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
然后打包
然后在文件夹中找到我们的jar包
命令行运行如下
可以看到他以8082端口启动,那是因为在打包的时候他只会把main文件夹下的东西进行打包,所以不会找到项目根目录下的8085端口和根目录下的config文件夹下的8083端口,因此他会找到classpath路径下的config里边的配置文件里边的端口号8082
下面我们使用命令行来修改默认配置文件
在运行项目的时候我们写入如下
java -jar HelloWorld-1.0-SNAPSHOT.jar --server.port=8088
在命令行直接指定端口号为8088,可以看到项目就以8088启动起来了,命令行这种方式是优先级最高的
2.外部的配置文件
打好jar包后,我们除了可以用命令行修改配置外,还可以通过外部的配置文件来修改,优先级为:
外部的配置文件优先级高于jar包内部的配置文件
带profile的配置文件优先级高于不带profile的配置文件
我们在外部写上application.properties里边指定端口号为8081,发现可以直接启动,端口号为8081
(期间出现了点小插曲,Ubuntu本地把application.porperties放到和jar同一个目录下居然没反应,这是放到Windows Server上的jar居然可以使用,amazing)
当然如果不把配置文件放到同一个目录,需要用一个注解来指定文件目录@PropertyResource来指定文件目录