Springboot引用外部配置文件
2017-12-16 00:00
656 查看
Spring boot 官方文档
中文翻译过来就是
这里说了四种方式可以把配置文件放到外部的。
第一种是在jar包的同一目录下建一个config文件夹,然后把配置文件放到这个文件夹下;
第二种是直接把配置文件放到jar包的同级目录;
第三种在classpath下建一个config文件夹,然后把配置文件放进去;
第四种是在classpath下直接放配置文件。
这四种方式的优先级是从一到四一次降低的。
这四种方式的优先级是从一到四一次降低的。
由于我们是要从外部读取文件,所以直接说前两种。
看下文件目录结构:
![](http://img.blog.csdn.net/20170825170525189?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzU5ODEyODM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
这里的application.properties是我们的配置文件,config是创建的另外一个目录,放的也是application.properties。
Display-1.0-SNAPSHOT.jar中可以包含application.properties配置文件也可以不包含。
为了验证可以在config中设置myname=name1,jar同级目录中设置myname=name2,如果jar中包含配置文件,将其中设置成myname=name3。
直接使用指令启动:
之后验证可得知,我们通过@Value(“${myname}”)获取到的myname的值是name1,把config下的配置文件删除后获取的结果是name2,都删除后才会获取jar包中配置文件的数据name3。
下面继续,我把application.properties的信息修改如下:
配置文件目录结构:
![](http://img.blog.csdn.net/20170825171449942?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzU5ODEyODM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
我又新增了一个名为application-host.properties的配置文件,同理也可以把这个文件考出来放到jar包外面,同级目录或者config下。
这样项目启动之后dev配置文件和host配置文件都会生效。
![](http://img.blog.csdn.net/20170825171723317?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzU5ODEyODM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
这里为了突出其他的配置文件我只把host的拷出来了,dev的还是在jar包里,application.properties配置文件放在jar中也一样,我们需要的主要是host的配置文件。
这样每次修改的时候只需要修改配置文件信息,然后重启项目就好,不需要重新打包。
如果想要只修改配置文件,不重启项目就能生效,可以考虑用java来读取配置文件中的数据,把它当作一个普通文件来读取,或者写到其他数据库中也行。上面这些方案已经能够满足我的需求了,所以其他的不在做了。
官网对配置文件的说明
24.3 Application property files SpringApplication will load properties from application.properties files in the following locations and add them to the Spring Environment: A /config subdirectory of the current directory. The current directory A classpath /config package The classpath root The list is ordered by precedence (properties defined in locations higher in the list override those defined in
中文翻译过来就是
这里说了四种方式可以把配置文件放到外部的。
第一种是在jar包的同一目录下建一个config文件夹,然后把配置文件放到这个文件夹下;
第二种是直接把配置文件放到jar包的同级目录;
第三种在classpath下建一个config文件夹,然后把配置文件放进去;
第四种是在classpath下直接放配置文件。
这四种方式的优先级是从一到四一次降低的。
这四种方式的优先级是从一到四一次降低的。
由于我们是要从外部读取文件,所以直接说前两种。
看下文件目录结构:
这里的application.properties是我们的配置文件,config是创建的另外一个目录,放的也是application.properties。
Display-1.0-SNAPSHOT.jar中可以包含application.properties配置文件也可以不包含。
为了验证可以在config中设置myname=name1,jar同级目录中设置myname=name2,如果jar中包含配置文件,将其中设置成myname=name3。
直接使用指令启动:
java -jar Display-1.0-SNAPSHOT.jar
之后验证可得知,我们通过@Value(“${myname}”)获取到的myname的值是name1,把config下的配置文件删除后获取的结果是name2,都删除后才会获取jar包中配置文件的数据name3。
多配置文件化
另外如果我们想要想配置测试、开发、生产环境一样使用另外一个配置文件怎么来实现呢?下面继续,我把application.properties的信息修改如下:
spring.profiles.active=dev,host
配置文件目录结构:
我又新增了一个名为application-host.properties的配置文件,同理也可以把这个文件考出来放到jar包外面,同级目录或者config下。
这样项目启动之后dev配置文件和host配置文件都会生效。
这里为了突出其他的配置文件我只把host的拷出来了,dev的还是在jar包里,application.properties配置文件放在jar中也一样,我们需要的主要是host的配置文件。
这样每次修改的时候只需要修改配置文件信息,然后重启项目就好,不需要重新打包。
如果想要只修改配置文件,不重启项目就能生效,可以考虑用java来读取配置文件中的数据,把它当作一个普通文件来读取,或者写到其他数据库中也行。上面这些方案已经能够满足我的需求了,所以其他的不在做了。
相关文章推荐
- Springboot引用外部配置文件
- Springboot引用外部配置文件
- Spring-Hibernate配置中,引用外部property文件
- Spring-boot中利用外部配置文件生成数据源
- springboot 读取外部配置文件
- spring配置文件中引用外部的properties文件
- spring boot application.properties文件外部配置
- JdbcTemplae使用入门&&Spring三种连接池配置&&Spring配置文件引用外部properties文件
- Spring-boot中利用外部配置文件生成数据源
- spring boot application.properties文件外部配置
- Spring Boot 把配置文件和日志文件放到jar外部
- Spring 基于注解装配依赖对象和引用外部文件读取数据库配置
- spring boot启动时加载外部配置文件的方法
- SpringBoot 打包为war包启动时导入外部配置文件
- spring boot 引用外部配制文件顺序
- Spring Boot配置文件放在jar外部
- Spring Boot配置文件放在jar外部
- springboot干货——(八)springboot引入外部xml配置文件
- springboot 配置文件中属性变量引用方式@@解析
- springboot 使用外部配置文件