测试环境中,随便stop和restart项目都无所谓,但在生产环境中,我们想要动态的修改配置信息就会很麻烦。这里用springBoot的 @PropertySource来读取.properties配置文件
1.读取本项目resources目录下的.properties配置文件
1.1 读取application.properties文件
在application.properties文件里写如下代码
1 | name=crh |
读取application.properties文件里的信息不需要设置文件路径
1.2 读取新建的.properties文件
1 | name=crh |
在.java文件里读取.properties文件的路径,@PropertySource可以放在任意一个java文件里,做好放在main函数里
1 | @PropertySource(value = "classpath:dynamic.properties") |
2.包外的.properties文件
2.1读取本地的.properties文件
1 | name=crh |
在.java文件里读取F盘的dynamic.properties文件的路径
1 | @PropertySource(value = "file:F:/GitLib/target/dynamic.properties") |
2.2部署到服务器上后,读取包外的.properties文件
1 | name=crh |
在.java文件里读取dynamic.properties文件的路径,我这里写的路径是tomcat的webapps的路径,dynamic.properties文件放在webapps下
2.2.1 绝对路径方式
1 | @PropertySource(value = "file:/root/tomcat/apache-tomcat-8.5.23/webapps/dynamic.properties") |
2.2.2 相对路径方式
1 | @PropertySource(value = "classpath:dynamic.properties") |
需在tomcat里配置classpath,在tomcat/conf下找到catalina.properties,找到shared.loader,添加shared.loader=/root/tomcat/apache-tomcat-8.5.23/webapps,启动tomcat。
3.编写java文件获取配置文件资源
1 | public class ApplicationProperties { |
调用只需要使用类名调用静态方法就可以了,例如ApplicationProperties.getText(“.properties文件里的属性名称,例如name”),可以获取到name的值crh