使用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
答案 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
来运行测试,那么大多数情况下它是从项目根目录运行的。