我有application.properties文件
具有
spring.profiles.active=local
我有application-local.properties,其中包括许多字段
api.password = password123
如您所见,我在属性文件中使用了硬编码的password123。
假设我在Windows上,并且我在具有
的Windows上有app.properties文件 api.password = password123
我想通过app.properties读取Spring Boot属性文件中的api.password
我该如何实现?
答案 0 :(得分:3)
如果要从非标准位置读取属性,则可以使用--spring.config.location
或--spring.config.additional-location
参数启动应用程序。
$ java -jar app.jar --spring.config.location=file:./app.properties
如果您不控制启动参数,则可以使用@PropertySource
注释。
只需注释您的主类(或任何其他配置):
@PropertySource("file:.app.properties")
您可以设置ignoreResourceNotFound=true
,因此即使文件不存在,应用程序也将启动。
实际上有 17种方法将属性传递给Spring-Boot应用程序。
我建议您熟悉该约定,因为了解哪个文件优先是至关重要的:
答案 1 :(得分:1)
可能您可以像下面那样使用--spring.config.location
$ java -jar myApp.jar --spring.config.location = file:/file/app.properties目录
答案 2 :(得分:0)
我用过jasypt:https://github.com/ulisesbocchio/jasypt-spring-boot 加密密码,然后提供解密字符串(jasypt.encryptor.password)作为启动参数。这样,配置中和git-repos上都没有useabel密码。