gzk329
V2EX  ›  Java

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

  •  
  •   gzk329 · Sep 8, 2022 · 2294 views
    This topic created in 1363 days ago, the information mentioned may be changed or developed.

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

    wa8n
        1
    wa8n  
       Sep 8, 2022 via iPhone
    打断点确定下工具类有没有实例化
    gzk329
        2
    gzk329  
    OP
       Sep 8, 2022
    单元测试中 @InjectMocks 了 业务模块中的一个类 bean1 ,common 模块中的工具类是注入到这个 bean1 的,然后在测试类中,对注入来的对象也使用了 @MockBean ,debug 的时候就是一直显示为 null ,并没有注入
    commoccoom
        3
    commoccoom  
       Sep 8, 2022 via iPad
    第三方库类可能无法使用自动注解,需要手动配置 JavaConfig 注入
    gzk329
        4
    gzk329  
    OP
       Sep 8, 2022
    @commoccoom 手动注入 会显示 bean 冲突异常 Unable to register mock bean xxx expected a single matching bean to replace but found [xxxx getxxxx]
    gzk329
        5
    gzk329  
    OP
       Sep 8, 2022
    而且这个工具类也是我自己写的 common 模块单元测试也写了 都正常的
    gzk329
        7
    gzk329  
    OP
       Sep 8, 2022
    @commoccoom 谢谢你的回复 我好像明白了 和 spring 没关系 是我的 Mock 没用好
    mazai
        8
    mazai  
       Sep 9, 2022
    @InjectMocks 应该是 mockito 提供的注解吧,要和 @Mock 配合使用,测试类上加 @ExtendWith(MockitoExtension.class)就可以了
    gzk329
        9
    gzk329  
    OP
       Sep 14, 2022
    这个我也解决了 是和我另一个帖子是同一个问题 MOCK 单元测试的时候 多层怎么既保留部分依赖的真实方法 有 mock 模拟一部分 我是 @Resource 和 @InjectMock 一起使用 既注入了测试对象 又能 mock 模拟一部分数据
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5998 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 02:57 · PVG 10:57 · LAX 19:57 · JFK 22:57
    ♥ Do have faith in what you're doing.