如果您查看在 中找到的默认配置,portal.properties
它会说
#
# Application startup event that runs once for every web site instance of
# the portal that initializes.
#
application.startup.events=com.liferay.portal.events.AddDefaultDataAction,\
com.liferay.portal.events.AppStartupAction,\
com.liferay.portal.events.ChannelHubAppStartupAction
因此,您可以com.liferay.portal.events.AddDefaultDataAction
通过在您的portal-ext.properties
:
application.startup.events=com.liferay.portal.events.AppStartupAction,\
com.liferay.portal.events.ChannelHubAppStartupAction
如果要对所有新安装执行此操作,则必须在实例首次启动之前添加此更改。或者您应该编写一个开箱即用的 ext 插件。为什么需要分机?钩子只能添加另一个 StartupAction,不能更改现有的。ext可以更改或删除现有的启动操作或覆盖其代码。
在 ext 插件中,您还可以实现
application.startup.events=com.mariaioannidou.MyCustomAddDefaultDataAction,\
com.liferay.portal.events.AppStartupAction,\
com.liferay.portal.events.ChannelHubAppStartupAction
并实现MyCustomAddDefaultDataAction
与默认操作相同的操作,无需创建文档类型。
另一方面,钩子可以找到所有您不想要的标准文档类型,检查它们是否确实未被使用,然后删除它们。如您所见,AddDefaultDataAction
它所做的不仅仅是添加文档类型,因此您可能希望操作中的其余代码运行。
另一种选择是编写一个 ext 插件,它实际上改变了 的实现com.liferay.portal.events.AddDefaultDataAction
,但是你又有了一个 ext - 如果你在第一次启动之前没有在每次安装中部署它,你最终会得到默认的内容,并且您可能需要一些代码来自动删除它。
我个人的建议是使用钩子,删除不需要的文档类型(如果它们未使用) - 原因是:
- 易于部署(可热部署),
- 如果你在第一次运行之前没有部署你的插件,你最终还是需要删除不需要的文档类型,
- 可维护性:比 ext 插件更容易维护钩子。