如何在application.yml文件中添加类路径资源

时间:2019-12-27 19:24:15

标签: spring-boot yaml

使用spring-boot时,如果有application.properties文件,则可以在值中指定类路径。

app.templates = classpath:app\mock-templates

如何在application.yml中指定相同的内容?

这样指定时,读取的值不正确-

app:
  templates : 'classpath:app\mock-templates'

价值注入-

@Value("${app.templates}")
private String templateLocation; 
// value injected is "classpath:app\mock-templates", it should be <absolute-path>\app\mock-templates

2 个答案:

答案 0 :(得分:0)

我只是检查是否无论您使用.properties还是.yaml文件,您都将始终将classpath:app\mock-templates作为注入的属性值。没关系。从属性读取时,Spring不会完成真实路径的classpath:前缀。接下来将由ClassPathResource完成。

P.S。我认为在这里也引用没有任何意义。

答案 1 :(得分:0)

我遇到了完全相同的问题,有一种解决方法。我尝试使用classpath,但不起作用。然后我用这种方式

app:
  templates: "${PWD}/your/resources/dir/location"

在您的application.yml文件中。它对我有用,只需确保您的PWD来自测试运行的路径即可。如果您使用git hooks来运行测试,那么大多数情况下它是从项目根目录运行的。