Hybris HAC 更新场景

Hybris HAC Update Scenario

我在我的一个项目中写了一个拦截器来拦截所有的请求。所以通常在 spring 项目中,我会进行正常构建并启动服务器,并且我与拦截器相关的更改将开始反映。但是,hybris 项目似乎并非如此。 我是否也需要在 hybris hac 中进行更新?如果我这样做,那么在下面提到的可用选项中,我需要选择哪些选项以及为什么。 1.更新运行系统 2.从数据库中清除hMC配置 3. 创建基本数据 4. 本地化类型

谢谢, 阿希什

假设您没有对任何基础数据对象(Jalo 项目)进行任何更改,那么您将不需要 运行 在 hybris hAC 中进行更新。

您应该能够进行更改,运行 ant clean all from the platform 然后启动 hybris ECP 实例,您的更改将可见。

如果这是一个普通的 Spring MVC 拦截器,那么它应该可以正常工作。 您是否检查了您正在使用的店面扩展中的 spring 配置?

例如看一下加速器Spring MVC配置文件:

hybris/bin/ext-template/yacceleratorstorefront/web/webroot/WEB-INF/config/spring-mvc-config.xml

这有一些开箱即用的示例:

<mvc:interceptors>
    <ref bean="beforeControllerHandlerInterceptor" />
    <ref bean="beforeViewHandlerInterceptor" />
    <ref bean="csrfHandlerInterceptor" />
</mvc:interceptors>

举个例子,默认的before controller handler拦截器定义为:

<!-- Interceptor that runs once per request and before the controller handler method is called -->
    <alias name="defaultBeforeControllerHandlerInterceptor" alias="beforeControllerHandlerInterceptor" />
    <bean id="defaultBeforeControllerHandlerInterceptor" class="de.hybris.platform.yacceleratorstorefront.interceptors.BeforeControllerHandlerInterceptor" >
        <property name="beforeControllerHandlers">
            <ref bean="beforeControllerHandlersList" /> 
        </property>
    </bean>

哪些引用:

<alias name="defaultBeforeControllerHandlersList" alias="beforeControllerHandlersList" />
<util:list id="defaultBeforeControllerHandlersList" >
    <!-- List of handlers to run -->
    <bean class="de.hybris.platform.yacceleratorstorefront.interceptors.beforecontroller.SecurityUserCheckBeforeControllerHandler" />
    <bean class="de.hybris.platform.yacceleratorstorefront.interceptors.beforecontroller.RequireHardLoginBeforeControllerHandler" >
            <property name="userService" ref="userService"/>
            <property name="redirectStrategy" ref="redirectStrategy"/>
       ...

    </bean>
    <bean class="de.hybris.platform.yacceleratorstorefront.interceptors.beforecontroller.DeviceDetectionBeforeControllerHandler" />

...

</util:list>

因此您可以使用您自己的实现的别名来覆盖它,或者将其他控制器处理程序添加到列表中。

因为底层数据模型没有变化 - 这只是连接 Spring MVC 相关 类 - 不需要更新系统或类似的东西。只需 'ant clean all' 重新编译以获取新的拦截器 类,并重新启动服务器以获取 Spring cornfiguraton 中的更改。

为了回答您问题的第二部分,我至少列出了选择每种选项的一个原因。希望这有帮助。

  1. 更新 运行 系统 - hybris 类型定义更改时需要。例如,更改文件内容 <extnesion-name>-items.xml
  2. 从数据库中清除 hMC 配置 - 如果您选择在数据库中保留 hmc 配置并更改它。例如,更改文件中的内容 hmc.xml
  3. 创建基本数据 - 如果 impex 文件中的内容发生变化,遵循 essentialdata*.impex 的命名模式。
  4. 本地化类型 - 如果本地化的属性文件发生变化。例如更改文件 <extension-name>-locales_en.properties
  5. 中的内容