我有一个使用application-local.properties文件中定义的值的类,我认为它会被使用,因为application-properties有`spring.profiles.active = local
当我在IntelliJ中启动时,我在控制台日志中看到了这一点:
Loaded config file 'file:.../build/resources/main/application.properties' (classpath:/application.properties)
2016-12-18 20:10:17.596 DEBUG 29999 --- [ restartedMain] o.s.b.c.c.ConfigFileApplicationListener : Loaded config file 'file:.../build/resources/main/application-local.properties' (classpath:/application-local.properties)`
Skipped (empty) config file 'file:...build/resources/main/application-local.properties' (classpath:/application-local.properties) for profile local
它说它跳过了空的配置文件,但当我检查' build / resources / main / application-local.properties'然后我看到那里的价值观。
但是,当我从IntelliJ中将它作为Spring Boot应用程序运行时,以下类没有这些属性。它抛出一个空指针,因为它们是null:
@Value("${myapp.ApiKey}")
private String apiKey;
@Value("${myapp.ApiSecret}")
private String apiSecret;
@Value("${myapp.user}")
private String user;
在应用程序配置中,我尝试使用Active Profiles,Program Arguments和Environment Variables。
但是,如果我从命令行运行:
java -jar -Dspring.active.profiles=local build/libs/myjar-0.0.1-SNAPSHOT.jar
然后它工作得很好。我确信这在以前工作,但不确定IntelliJ版本是否相同。有关如何使用我的application.properties的正确版本的任何提示?
答案 0 :(得分:-1)
您使用的是哪个春季启动版?如果您使用的是最新版本,那么
-Dspring.profiles.active=local