苍老的岁月 2021-08-13 11:05 采纳率: 50%
浏览 73

A服务定义1个service,如何在B服务扩展实现并通过调用A服务的service执行B服务的实现

A服务有1个humanService,实现类ManServiceImpl。
在B服务重写了ManServceImpl实现,并且还扩展了个新的实现WomanServiceImpl。
当我调用humanService时,我希望执行的是B服务的两个实现。

重写ManServiceImpl调用的我有个思路,扩展新的实现调用请各位指点下

  • 写回答

1条回答 默认 最新

  • a1767028198 2021-08-13 13:06
    关注

    一种是profile,最终结果只会注入一个bean,缺点也很明显,如果你确定这多个bean都要注入到容器,这种可能就不一定适用了
    或者可以使用装饰者模式,类似于mybatis的CachingExecutor,这样就可以实例化的时候自己决定用哪个实现,甚至可以从yml文件读取beanId进行初始化,将写死的部分做成可配置
    img

    评论

报告相同问题?

问题事件

  • 创建了问题 8月13日

悬赏问题

  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染