美文网首页
@Autowired XxxService注入问题解决记录

@Autowired XxxService注入问题解决记录

作者: 攻城狮Chova | 来源:发表于2021-08-19 23:26 被阅读0次

    问题

    • Controller层使用 @Autowired注入Service时,提示Bean中没有Service
    • Service接口中使用 @Component注入后,启动项目问题提示:
    The web application [ROOT] appears to have started a thread named [DubboClientReconnectTimer-thread-2] but has failed to stop it.
    This is very likely to create a memory leak
    

    原因

    • 提示Bean中没有Service:
      • 因为没有将Service注入到Spring容器中,可以通过@Component或者@Service注解注入
    • 在Service中使用注解注入到容器后,启动项目会报错:
      • 因为在Service接口注入,同时注入了两个Bean
      • 在Service接口注入,会将实现Service接口的子类也注入到容器中,所以会导致Dubbo重复性线程错误

    解决办法

    • Service的实现类ServiceImpl上,使用 @Component或者 @Service注解将Service注入到Spring容器中
    • 如果是使用Dubbo的SpringBoot项目,可以在Service实现类使用如下注解
    @com.alibaba.dubbo.config.annotation.Service
    @org.springframework.stereotype.Service
    
    • 注意: ==要将Service实现类注入到容器,而不是Service接口==

    总结

    • Spring容器注入规则

    相关文章

      网友评论

          本文标题:@Autowired XxxService注入问题解决记录

          本文链接:https://www.haomeiwen.com/subject/podzbltx.html