如何在后台Web上下文中覆盖Bean

2020-09-12 03:00发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我在 mybackoffice-backoffice-spring.xml 中定义了一个自定义 CockpitThreadContextCreator ,以向新创建的上下文中添加一些其他会话属性:

  
  
  
  

bean成功实例化,但在运行时从未使用过。 而是使用默认的 backofficeCockpitThreadContextCreator 。 如何覆盖默认实现?

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我在 mybackoffice-backoffice-spring.xml 中定义了一个自定义 CockpitThreadContextCreator ,以向新创建的上下文中添加一些其他会话属性:

  
  
  
  

bean成功实例化,但在运行时从未使用过。 而是使用默认的 backofficeCockpitThreadContextCreator 。 如何覆盖默认实现?

付费偷看设置
发送
11条回答
骆驼绵羊
1楼 · 2020-09-12 03:30.采纳回答

我只是想补充一点,您不需要修改backoffice扩展名的Web.xml即可从inoffice扩展名或解决方案中从backoffice扩展名加载新的spring配置。

Yo可以在backoffice扩展的proyect属性中使用HybrisBackoffice.additionalWebSpringConfigs.mybackoffice属性,以将其他spring文件加载到Backoffice Web上下文。 例如:

  HybrisBackoffice.additionalWebSpringConfigs.mybackoffice = classpath:/mybackoffice/spring/import.xml

  

这将在以下位置搜索import.xml

 /mybackoffice/resources/mybackoffice/spring/import.xml
  
Haoba3210
2楼-- · 2020-09-12 03:12

这绝对是比通过customize文件夹或build回调自定义web.xml更好的解决方案。

愤怒的猪头君
3楼-- · 2020-09-12 03:17

所以可以做到! 我已经完成了,但是它确实需要一些设置,配置和利用"自定义"蚂蚁目标。 这是一个简单的过程,但是需要花费几分钟的时间进行设置。 我已经在这里记录了它: http://www.daharveyjr.com/hybris-how-to-override-a-bean-in-backoffice-web-spring-xml/

如果不允许此链接,请告诉我,我将重新调整。 只是花了比在这里容易完成的更长的时间!

闻人可可
4楼-- · 2020-09-12 03:10

提请我无法解决我的问题。 该bean仍然没有被声明。 在我的情况下,Applicationcontext.containsbean()返回null。 我也尝试了以下方法,但是它没有用。

zhangjiyang1323
5楼-- · 2020-09-12 03:35

我也遇到过同样的问题,实际上似乎没有OOTB Hybris解决方案来适应后台Web定义的bean的逻辑。 我已经看到了的解决方案,但是对buildcallbacks进行了很多修改,可以移动文件,因此我实现了一种不同的(并且更容易吗?)策略。 我所做的:

  1. 我已经在自定义后台办公扩展中创建了一个自定义的web spring xml文件:mybackoffice/resources/mybackoffice-web-spring.xml

  2. 在此文件中,我重写/更改/...在后台扩展web-spring xml

  3. 中定义的bean。
  4. 我应用的技巧是更新buildcallbacks.xml以在后台应用程序的web-app-context中包含此自定义Web上下文(这意味着在contextConfigLocation列表中包括自定义Web xml文件) )

  5. 编译并运行

对buildcallbacks.xml的修改如下:

  
      <顺序>
          ...
          
      
  

  

这些修改的结果可以在后台办公扩展web.xml文件中看到:

  
       contextConfigLocation 
      <参数值>
          WEB-INF/backoffice-web-spring.xml,classpath:mybackoffice-web-spring.xml
      
  

  

对我来说,那些适应工作有效,并且似乎很容易达到我的需求。

野沐沐
6楼-- · 2020-09-12 03:35

是的,这是最好的答案,也是hybris的预期方式。

compass1988
7楼-- · 2020-09-12 03:18

一周热门 更多>

点击此处---> EasySAP.com 一起学习S4 HANA ...

相关问答