V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gzk329
V2EX  ›  Java

请教一个 Springboot bean 注入的问题?

  •  
  •   gzk329 · 2022-09-08 22:34:09 +08:00 · 1765 次点击
    这是一个创建于 831 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目中一个 common 模块是非 SpringBoot 的 , 一个业务模块是 SpringBoot 的 Common 模块的一个工具类,需要注入到业务模块中 为啥总是注入不了,显示为 null 啊? 求帮助

    wangsongyan
        1
    wangsongyan  
       2022-09-08 22:36:15 +08:00 via iPhone
    打断点确定下工具类有没有实例化
    gzk329
        2
    gzk329  
    OP
       2022-09-08 22:37:18 +08:00
    单元测试中 @InjectMocks 了 业务模块中的一个类 bean1 ,common 模块中的工具类是注入到这个 bean1 的,然后在测试类中,对注入来的对象也使用了 @MockBean ,debug 的时候就是一直显示为 null ,并没有注入
    commoccoom
        3
    commoccoom  
       2022-09-08 22:42:02 +08:00 via iPad
    第三方库类可能无法使用自动注解,需要手动配置 JavaConfig 注入
    gzk329
        4
    gzk329  
    OP
       2022-09-08 22:50:16 +08:00
    @commoccoom 手动注入 会显示 bean 冲突异常 Unable to register mock bean xxx expected a single matching bean to replace but found [xxxx getxxxx]
    gzk329
        5
    gzk329  
    OP
       2022-09-08 22:50:55 +08:00
    而且这个工具类也是我自己写的 common 模块单元测试也写了 都正常的
    commoccoom
        6
    commoccoom  
       2022-09-08 22:59:27 +08:00 via iPad
    gzk329
        7
    gzk329  
    OP
       2022-09-08 23:12:18 +08:00
    @commoccoom 谢谢你的回复 我好像明白了 和 spring 没关系 是我的 Mock 没用好
    mazai
        8
    mazai  
       2022-09-09 11:43:28 +08:00
    @InjectMocks 应该是 mockito 提供的注解吧,要和 @Mock 配合使用,测试类上加 @ExtendWith(MockitoExtension.class)就可以了
    gzk329
        9
    gzk329  
    OP
       2022-09-14 21:28:59 +08:00
    这个我也解决了 是和我另一个帖子是同一个问题 MOCK 单元测试的时候 多层怎么既保留部分依赖的真实方法 有 mock 模拟一部分 我是 @Resource 和 @InjectMock 一起使用 既注入了测试对象 又能 mock 模拟一部分数据
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3446 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:47 · PVG 18:47 · LAX 02:47 · JFK 05:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.