我需要对救生筏7专用消息portlet做一些更改,我想问:
是否有一种使用模块覆盖救生筏门户类的方法?在我的例子中,我想更改类PrivateMessagingUtil。
诚挚的问候,
丹尼尔
发布于 2018-01-11 07:09:38
您可以自定义Liferay7services,创建一个服务项目类型。您可以使用命令行创建它:
blade create -t service-wrapper -p com.liferay.docs.serviceoverride -c UserLocalServiceOverride -s com.liferay.portal.kernel.service.UserLocalServiceWrapper service-override我需要未发送给用户的密码更改确认邮件,因此我从类UserLocalServiceWrapper重写UserLocalServiceWrapper方法,并将silentUpdate传递为true。
@Component(
immediate = true,
property = {
},
service = ServiceWrapper.class)
public class UserLocalServiceOverride extends UserLocalServiceWrapper {
public UserLocalServiceOverride() {
super(null);
}
@Override
public com.liferay.portal.kernel.model.User updatePassword(long userId,
java.lang.String password1, java.lang.String password2,
boolean passwordReset)
throws com.liferay.portal.kernel.exception.PortalException {
return updatePassword(userId,
password1, password2,
passwordReset, true);
}
@Override
public com.liferay.portal.kernel.model.User updatePassword(long userId,
java.lang.String password1, java.lang.String password2,
boolean passwordReset, boolean silentUpdate)
throws com.liferay.portal.kernel.exception.PortalException {
return super.updatePassword(userId, password1, password2,
passwordReset, silentUpdate);
}
}查看Liferay文档中的这个链接:
base/7-0/customizing-liferay-services-service-wrappers
希望它能帮到你。
发布于 2016-11-20 20:59:58
不看代码:如果有扩展点:使用它。当您命名要更改的类时,我假设没有类,因此扩展点可能在调用此方法的其他类中。不是每个类都有一个扩展点。如果其他一切都失败了,您将不得不咬紧牙关,维护一个分支版本--至少它(可能,我还没有看过代码)是一个插件,因此其大小和影响将是相对有限的。
如果您想要做的更改背后有一个很好的故事,请使用开罚单,更好的是使用建议的实现。与组件所有者讨论。
...and在这里分别回答了Daniele的评论问题:我没有看代码--这就是这种问题的问题所在:在一种不同的情绪下,我会拒绝“我想在Xxx类中修改一些代码”的问题,并在评论中提出一个反问题:“你到底想要实现什么?”通常有更好的解决方案,但当提出这样的技术问题时,任何答案都可能是次优的。因为布雷提已经选择了他打算用来解决他的问题的解决方案,所以我坚持我的话--假设他的实际意图,你可以自由地添加一个更好的答案。
https://stackoverflow.com/questions/40709094
复制相似问题