点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
您好,专家,我们在core-items.xml中有一个属性,名为downloadURL,它属于Media类型。 当我们需要操纵该属性的返回值时,我们已经使用了方面。 但是现在,我们遇到了一些性能问题。 因此,我们尝试摆脱aop的使用。 我想,由于不可写的属性,我没有机会使用拦截器。 在这种情况下,您会建议我什么做法? 谢谢
<自定义属性>
java.lang.Boolean.FALSE
<修饰符read =" true" write =" false"可移动=" true" search =" false"可选=" true"/>
<型号>
具有方面的解决方案(现在已存在于系统中):代码是我要从aop中覆盖的内容:(目前在方面类中)
@Around(" execution(public * de.hybris.platform.core.model.media.MediaModel.getDownloadURL(..))")
public String getDownloadUrlByAspect(final ProceedingJoinPoint pjp)抛出Throwable
{
最终的LocalMediaWebURLStrategy localMediaWebURLStrategy = Registry.getApplicationContext()
.getBean(LocalMediaWebURLStrategy.class);
最终的MediaStorageConfigService mediaStorageConfigService = Registry.getApplicationContext()
.getBean(MediaStorageConfigService.class);
MediaModel mediaModel =(MediaModel)pjp.getThis();
MediaStorageConfigService.MediaFolderConfig config = mediaStorageConfigService
.getConfigForFolder(mediaModel.getFolder()。getQualifier());
final String downloadURL = localMediaWebURLStrategy.getDownloadUrlForMedia(config,new ModelMediaSource(mediaModel));
LogMF.debug(LOG,"媒体的新媒体下载URL为{0}",新的Object []
{downloadURL});
返回downloadURL;
}
我将更改默认的媒体策略。
添加此属性:
media.default.url.strategy = yourMediaStrategyBean
创建一个扩展LocalMediaWebURLStrategy的类并覆盖以下方法:
公共字符串getDownloadUrlForMedia(MediaFolderConfig配置,MediaSource mediaSource)
Sebaastien,谢谢您的回答。 但是我想我不明白你的意思。 因为,我关注的不是直接战略。 我只想覆盖mediaModel.getDownloadURL方法而不是mediaStrategy。 也许我没有看对地方。 我想getDownloadURL方法不涉及策略代码或缺少某些内容。
嗨,穆斯塔法,
只需在上面具有的XML中将
write
属性更改为write =" true"
,然后构建并运行平台。 这将在类中生成setDownloadURL(String downloadURL)
方法。缺点是,当您迁移到更高的hybris版本时,对于补丁程序或主要发行版,您每次都需要应用此更改。 如果您创建一个单元测试来检查
setDownloadURL(...)
方法是否存在,并放入详细的AssertionError消息以提醒您如何进行更新。我希望这会有所帮助,
卢克
我们可以使用redeclare属性在自定义扩展中启用写入选项吗?
一周热门 更多>