8

项目启动报错怎么办?看看你Spring自动注入用对了嘛?@Autowired XxxService注入问题解...

 2 years ago
source link: https://segmentfault.com/a/1190000041213159
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

项目启动报错怎么办?看看你Spring自动注入用对了嘛?@Autowired XxxService注入问题解决

  • 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容器注入规则

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK