我的配置类如下
@Configuration
@PropertySource(value= "classpath:conf/agent.properties")
public class AppConfig{
使用
运行应用程序时java -jar app.jar spring.config.location=path-to-external-property-file
应用程序运行正常并从外部属性文件中获取属性,但是如果丢失了类路径中的属性文件FileNotFoundException
,那么这是预期的行为吗?对我来说,它应该与外部属性一起使用,它不应该关心类路径资源并停止运行。
为了解决这个问题,我目前正在使用ignoreResourceNotFound = true
答案 0 :(得分:0)
您似乎误解了spring-config-location
的含义
默认情况下,docs会在中搜索项目中某些位置application.properties
,..)中名为/config
的文件,以设置应用程序上下文。
您可以告诉spring您不希望在项目中使用此打包文件,并且您将使用命令行参数指定在运行时设置应用程序上下文所需的文件。这有利于使用
spring-config-location
选项。
话虽如此,在您的项目中,您可能有多个配置(@Configuration
)文件。有些文件需要从某个文件加载一些属性。这可以使用@PropertySource
来指定,这就是您正在做的事情。这不是application.properties
的替代品。 @PropertySource
只是告诉spring它需要读取文件以注入特定类中指定的属性。
因此,即使您在设置AppConfig
类之前指定外部配置位置弹簧,它也会查找@PropertySource
中提到的来源