Spring 弹簧数据-在投影中使用特性值

Spring 弹簧数据-在投影中使用特性值,spring,spring-boot,spring-data,projection,Spring,Spring Boot,Spring Data,Projection,我有一个SpringDataREST应用程序,我在其中创建了这样一个投影 @Projection(name = "UserWithAvatar", types = { User.class }) public interface UserWithAvatar { String getName(); String getEmail(); @Value("${app.url}/pictures/#{target.imageId}") String getAvatar

我有一个SpringDataREST应用程序,我在其中创建了这样一个投影

@Projection(name = "UserWithAvatar", types = { User.class })
public interface UserWithAvatar {
    String getName();
    String getEmail();

    @Value("${app.url}/pictures/#{target.imageId}")
    String getAvatar();
}

非工作部分是
getAvatar
,它生成一个用于查看图片的url。
但是,此
${app.url}
在投影中不起作用。

如何在其中添加这个application.properties值?

{}
块中使用
@environment.getProperty('app.url')
。它在SpringBoot2.3.0上运行,我不确定是否有旧版本

例如:

@Value("#{target.pictureUrl ?: @environment.getProperty('app.url') + 'static/default-avatar.png'}")
String getAvatarUrl();

@Value(“{${app.url}/pictures/{target.imageId}”)
或类似的东西@我尝试了
@Value(#{${app.url}+'/pictures/'+target.imageId}”)
,但不幸的是没有成功。它返回一个
EL1041E:解析有效表达式后,表达式中还有更多数据:“lcurly({)”然后出现错误。@它们在投影中的死区可能访问
systemProperties
direcly
@Value(“#{systemProperties['app.url']+'/pictures/'+target.imageId}”)
?@MartinBG显然,
应用程序.properties
值不在
系统属性中,或者您的示例中出现其他问题。
在类型为“org.springframework.data.projection.SpelEvaluatingMethodInterceptor$targetDrapper”的对象上找不到属性或字段“systemProperties”—可能不是公共的或无效?